系统目录表
系统目录表介绍
系统目录由描述数据库结构的表和视图组成。这些表对象有时称为数据字典,它们包含数据库本身的所有信息。每个系统目录表都包含有关数据库中特定元素的信息。每个数据库都有它自己的系统目录。
这些主题提供了有关系统目录表的结构、内容和使用的信息。还包含了有关“信息模式”的信息,它提供有关用户会话当前所连接 GBase 8s 实例的所有数据库中表、视图和列的信息。
SYSAGGREGATES
sysaggregates 系统目录表记录用户定义的聚集 (UDA)。sysaggregates 表具有以下列。
表 1. SYSAGGREGATES 表列描述
列 | 类型 | 解释 |
---|---|---|
name | VARCHAR(128) | 聚集的名称 |
owner | CHAR(32) | 聚集所有者的名称 |
aggid | SERIAL | 标识聚集的唯一代码 |
init_func | VARCHAR(128) | 初始化 UDR 的名称 |
iter_func | VARCHAR(128) | 迭代器 UDR 的名称 |
combine_func | VARCHAR(128) | 组合 UDR 的名称 |
final_func | VARCHAR(128) | 结束 UDR 的名称 |
handlesnulls | BOOLEAN | NULL 处理指示符: t = 处理 NULL f = 不处理 NULL |
每个用户定义的聚集在 sysaggregates 中都有一个条目,该条目由其标识代码(aggid 值)唯一标识。只有用户定义的聚集(不是内置的聚集)才会在 sysaggregates 中具有条目。
对 aggid 列的简单索引以及对 name 和 owner 列的组合索引都需要唯一值。
SYSAMS
sysams 系统目录表中包含使用内置访问方法和那些由 SQL CREATE ACCESS METHOD 语句创建的访问方法所需的信息。
sysams 表具有以下列。
表 2. SYSAMS 表列描述
列 | 类型 | 解释 |
---|---|---|
am_name | VARCHAR(128, 0) | 访问方法的名称 |
am_owner | CHAR(32) | 访问方法所有者的名称 |
am_id | INTEGER | 访问方法的唯一标识代码 这对应于 systables、sysindices 和 sysopclasses 表中的 am_id 列。 |
am_type | CHAR(1) | 访问方法的类型:P = 主要;S = 辅助 |
am_sptype | CHAR(3) | 访问方法可存在的空间类型: A 意味着访问方法支持外部空间和智能大对象空间。如果访问方法是内置的(例如 B 型树),那么还支持数据库空间。 D 或 d 表示访问方法仅支持数据库空间。 DS 意味着访问方法支持数据库空间和智能大对象空间。 S 或 s 表示访问方法仅支持智能大对象空间。 X 或 x 表示访问方法仅支持外部空间。 sx 意味着访问方法支持智能大对象空间和外部空间。 |
am_defopclass | INTEGER | 缺省运算符类的唯一标识代码 值为 sysopclasses 表中此运算符类的条目中的 opclassid。 |
am_keyscan | INTEGER | 辅助访问方法是否支持键扫描 (如果键扫描能够从对 am_getnext 函数的调用中返回键和行标识,那么该访问方法支持键扫描。)(0 = FALSE;非零 = TRUE) |
am_unique | INTEGER | 辅助访问方法是否支持唯一键(0 = FALSE;非零 = TRUE) |
am_cluster | INTEGER | 主访问方法是否支持集群(0 = FALSE;非零 = TRUE) |
am_rowids | INTEGER | 主访问方法是否支持行标识(0 = FALSE;非零 = TRUE) |
am_readwrite | INTEGER | 主访问方法是否可读写(0 = 访问方法只可读;非零 = 访问方法可读/写) |
am_parallel | INTEGER | 访问方法是否支持并行执行(0 = FALSE;非零 = TRUE) |
am_costfactor | SMALLFLOAT | 乘以扫描成本以规范化为针对内置访问方法执行的成本计算的值 扫描成本是 am_scancost 函数的输出。 |
am_create | INTEGER | 为此访问方法的 AM_CREATE 用途函数指定的例程 对于 sysprocedures 表中的例程,值 = procid。 |
am_drop | INTEGER | 为此访问方法的 AM_DROP 用途函数指定的例程 |
am_open | INTEGER | 为此访问方法的 AM_OPEN 用途函数指定的例程 |
am_close | INTEGER | 为此访问方法的 AM_CLOSE 用途函数指定的例程 |
am_insert | INTEGER | 为此访问方法的 AM_INSERT 用途函数指定的例程 |
am_delete | INTEGER | 为此访问方法的 AM_DELETE 用途函数指定的例程 |
am_update | INTEGER | 为此访问方法的 AM_UPDATE 用途函数指定的例程 |
am_stats | INTEGER | 为此访问方法的 AM_STATS 用途函数指定的例程 |
am_scancost | INTEGER | 为此访问方法的 AM_SCANCOST 用途函数指定的例程 |
am_check | INTEGER | 为此访问方法的 AM_CHECK 用途函数指定的例程 |
am_beginscan | INTEGER | 为此访问方法的 AM_BEGINSCAN 用途函数指定的例程 |
am_endscan | INTEGER | 为此访问方法的 AM_ENDSCAN 用途函数指定的例程 |
am_rescan | INTEGER | 为此访问方法的 AM_RESCAN 用途函数指定的例程 |
am_getnext | INTEGER | 为此访问方法的 AM_GETNEXT 用途函数指定的例程 |
am_getbyid | INTEGER | 为此访问方法的 AM_GETBYID 用途函数指定的例程 |
am_build | INTEGER | 为此访问方法的 AM_BUILD 用途函数指定的例程 |
am_init | INTEGER | 为此访问方法的 AM_INIT 用途函数指定的例程 |
am_truncate | INTEGER | 为此访问方法的 AM_TRUNCATE 用途函数指定的例程 |
am_expr_pushdown | INTEGER | 保留供将来使用是否支持参数描述符(0 = FALSE;非零 = TRUE) |
对于包含用途函数例程的每个列,值为相应例程的 sysprocedures.procid 值。
此表中 am_name 和 am_owner 列的组合索引只允许唯一值。am_id 列具有唯一索引。
有关访问方法函数的信息,请参阅访问方法的文档。
SYSATTRTYPES
sysattrtypes 系统目录表包含有关复杂数据类型的成员的信息。sysattrtypes 的每一行都包含有关集合数据类型的元素或行数据类型的字段的信息。
sysattrtypes 表具有以下列。
表 3. SYSATTRTYPES 表列描述
列 | 类型 | 解释 |
---|---|---|
extended_id | INTEGER | 扩展数据类型的标识代码 值与 sysxtdtypes 表中的相同 (SYSXTDTYPES)。 |
seqno | SMALLINT | 具有 extended_id 类型的条目的标识代码 |
levelno | SMALLINT | 集合层次结构中成员的位置 |
parent_no | SMALLINT | 包含此成员的复杂数据类型的 seqno 列中的值 |
fieldname | VARCHAR(128) | 行类型中字段的名称 对其他复杂数据类型为 NULL |
fieldno | SMALLINT | 系统按顺序指定的字段号(在每个行类型中从左到右指定) |
type | SMALLINT | 数据类型的代码 请参阅 syscolumns.coltype 的描述(SYSCOLUMNS页)。 |
length | SMALLINT | 成员的长度(以字节计) |
xtd_type_id | INTEGER | 标识此数据类型的代码 请参阅 sysxtdtypes.extended_id 的描述 (SYSXTDTYPES)。 |
typename | VARCHAR(128*3+3) | 类型名称 为了存储db.package.typename,因此需要128*3+3的长度。 |
extended_id 列和 xtd_type_id 列的两个索引允许重复值。extended_id 和 seqno 列的组合索引只允许唯一值。
SYSAUTOLOCATE
sysautolocate 系统目录表保留供将来使用。
表 4. SYSAUTOLOCATE 表列描述
列 | 类型 | 解释 |
---|---|---|
dbsnum | INTEGER | 保留供将来使用。 |
dbsname | VARCHAR(128,0) | 保留供将来使用。 |
pagesize | SMALLINT | 保留供将来使用。 |
flags | INTEGER | 保留供将来使用。 |
SYSBLOBS
sysblobs 系统目录表指定了 BYTE 和 TEXT 列值的存储位置。其名称基于 BYTE 和 TEXT 列的旧术语 Blob(也称为简单大对象),但不是指 GBase 8s 的 BLOB 数据类型。sysblobs 表包含了每个 BYTE 或 TEXT 列的一行,并具有以下列。
表 5. SYSBLOBS 表列描述
列 | 类型 | 解释 |
---|---|---|
spacename | VARCHAR(128) | 分区、数据库空间或系列的名称 |
type | CHAR(1) | 标识存储介质类型的代码:M = 磁标识存储介质类型的代码:M = 磁 O = 光学 |
tabid | INTEGER | 标识表的代码 |
colno | SMALLINT | 列在其表中的列号 |
tabid 和 colno 列的组合索引只允许唯一值。
有关 TEXT、BYTE、BLOB 和 CLOB 列的 Blob 空间、数据库空间和智能大对象空间的块位置和大小的信息,请参阅《GBase 8s 管理员指南》和《GBase 8s 管理员参考》。
SYSCASTS
syscasts 系统目录表描述数据库中的强制转型。它对每个内置强制转型、每个隐式强制转型和用户定义的每个显式强制转型包含一行。syscasts 表具有以下列。
表 6. SYSCASTS 表列描述
列 | 类型 | 解释 |
---|---|---|
owner | CHAR(32) | 强制转型的所有者(用户 gbasedbt 表示内置强制转型,用户名表示隐式和显式强制转型) |
argument_type | SMALLINT | 对其进行强制转型的源数据类型 |
argument_xid | INTEGER | 在 argument_type 列中指定的源数据类型的代码 |
result_type | SMALLINT | 强制转型返回的数据类型的代码 |
result_xid | INTEGER | 在 result_type 列中命名的数据类型的数据类型代码 |
routine_name | VARCHAR(128) | 实现强制转型的函数或过程 |
routine_owner | CHAR(32) | 在 routine_name 列中指定的函数或过程所有者的名称 |
class | CHAR(1) | 强制转型的类型:E = 显式强制转型 I = 隐式强制转型 S = 内置强制转型 |
如果 routine_name 和 routine_owner 具有 NULL 值,那么这表示定义强制转型时未使用例程。如果在 argument_type 和 result_type 列中指定的数据类型都具有相同的长度和对齐方式,并且都通过引用传递或者都通过值传递,那么会发生这种情况。
列 argument_type、argument_xid、result_type 和 result_xid 的组合索引只允许唯一值。列 result_type 和 result_xid 的组合索引允许重复值。
SYSCHECKS
syschecks 系统目录表描述在数据库中定义的每个检查约束。由于 syschecks 表同时存储 ASCII 文本和二进制编码格式的检查约束,因此它对每个检查约束包含多个行。syschecks 表具有以下列。
表 7. SYSCHECKS 表列描述
列 | 类型 | 解释 |
---|---|---|
constrid | INTEGER | 标识约束的唯一代码 |
type | CHAR(1) | 存储检查约束的格式:B = 二进制编码 s = 选择 T = 文本 |
seqno | SMALLINT | 检查约束的行号 |
checktext | CHAR(32) | 检查约束的文本 |
与类型列中的 B 类型相关联的 checktext 列中的文本采用的是计算机可读格式。要查看与特定检查约束相关联的文本,将以下查询与适当的 constrid 代码配合使用:
SELECT * FROM syschecks WHERE constrid=10 AND type='T'
SYSCHECKUDRDEP
udr_id 和 constraint_id 列的组合索引要求这些值的组合是唯一的。 syscheckudrdep 系统目录表描述数据库中用户定义的例程 (UDR) 引用的每个检查约束。syscheckudrdep 表具有以下列。
表 8. SYSCHECKUDRDEP 表列描述
列 | 类型 | 解释 |
---|---|---|
udr_id | INTEGER | 标识 UDR 的唯一代码 |
constraint_id | INTEGER | 标识检查约束的唯一代码 |
在 syscheckudrdep 表中描述的每个检查约束在 sysconstraints 系统目录表中也有它自己的行,其中 constrid 列与 syscheckudrdep 的 constraint_id 列具有相同的值。
SYSCOLATTRIBS
syscolattribs 系统目录表描述智能大对象(即 CLOB 和 BLOB 数据类型)的特征。
在该表中,在 CREATE TABLE 语句或 ALTER TABLE 语句的 PUT 子句中引用的每个智能大对象空间对应一行。
表 9. SYSCOLATTRIBS 表列描述
列 | 类型 | 解释 |
---|---|---|
tabid | INTEGER | 唯一地标识表的代码 |
colno | SMALLINT | 包含智能大对象的列的列号 |
extentsize | INTEGER | 智能大对象扩展数据块中的页,以 KB 表示 |
flags | INTEGER | 下列参数的十六进制值的组合(通过相加)的整数表示法: LO_NOLOG (0x00000001 = 1) = 不记录此智能大对象。 LO_LOG (0x00000010 = 2) = 智能大对象的日志记录遵循数据库的当前日志方式。 LO_KEEP_LASTACCESS_TIME (0x00000100 = 4) = 保存用户最近访问此列的时间记录。 LO_NOKEEP_LASTACCESS_TIME (0x00001000 = 8) = 不保存用户最近访问此列的时间记录。 HI_INTEG (0x00010000= 16) = 智能大对象空间数据页具有页眉和页脚,用于检测未完成的写操作和数据损坏。 MODERATE_INTEG (0x00100000= 32) = 数据页具有页眉,但没有页脚。 |
flags1 | INTEGER | 保留供将来使用 |
sbspace | VARCHAR(128) | 智能大对象空间的名称 |
tabid、colno 和 sbspace 列的组合索引只允许这三个值的唯一组合。
SYSCOLAUTH
syscolauth 系统目录表描述对列授予的每组自主访问特权。当前授予用户、角色或数据库中某列上 PUBLIC 组的每组列级别特权各占一行。syscolauth 表具有以下列。
列 | 类型 | 解释 |
---|---|---|
grantor | VARCHAR(32) | 授权者的授权标识 |
grantee | VARCHAR(32) | 被授权者的授权标识 |
tabid | INTEGER | 唯一地标识表的代码 |
colno | SMALLINT | 表中的列号 |
colauth | CHAR(3) | 指定列特权的 3 字节模式:s 或 S = Select、u 或 U = Update、r 或 R = References |
如果 colauth 特权代码是大写的(例如:S 表示 Select),那么具有此特权的用户还可以将此特权授予他人。如果 colauth 特权代码是小写的(例如:s 表示 Select),那么具有此特权的用户不能将该特权授予他人。连字符 ( - ) 指示在 colauth 模式内的该位置缺少对应的特权。
tabid、grantor、grantee 和 colno 列的组合索引只允许唯一值。tabid 和 grantee 列的组合索引允许重复值。
SYSCOLDEPEND
syscoldepend 系统目录表跟踪在检查约束和 NOT NULL 约束中指定的表列。由于检查约束可涉及表中的多列,所以 syscoldepend 表可以对每个检查约束包含多行;为约束所涉及的每列创建一行。syscoldepend 表具有以下列。
列 | 类型 | 解释 |
---|---|---|
constrid | INTEGER | 唯一地标识约束的代码 |
tabid | INTEGER | 唯一地标识表的代码 |
colno | SMALLINT | 表中的列号 |
constrid、tabid 和 colno 列的组合索引只允许唯一值。tabid 和 colno 列的组合索引允许重复值。
SYSCOLUMNS
syscolumns 系统目录表描述数据库中的每个列。
对于在表或视图中定义的每一列,都会有一行存在。
表 10. SYSCOLUMNS 表
列 | 类型 | 解释 |
---|---|---|
colname | VARCHAR(128) | 列名 |
tabid | INTEGER | 包含列的表的标识代码 |
colno | SMALLINT | 列号 系统按顺序指定此列号(在每个表中从左到右)。 |
coltype | SMALLINT | 指示该列的数据类型的代码: 0 = CHAR 1 = SMALLINT 2 = INTEGER 3 = FLOAT 4 = SMALLFLOAT 5 = DECIMAL 6 = SERIAL1 7 = DATE 8 = MONEY 9 = NULL 10 = DATETIME 11 = BYTE 12 = TEXT 13 = VARCHAR 14 = INTERVAL 15 = NCHAR 16 = NVARCHAR 17 = INT8 18 = SERIAL81 19 = SET 20 = MULTISET 21 = LIST 22 = ROW(未命名) 23 = COLLECTION 40 = LVARCHAR 41 = BLOB、BOOLEAN和CLOB 43 = LVARCHAR(仅适用于客户机端) 45 = BOOLEAN 52 = BIGINT 53 = BIGSERIAL 63=varchar2 2061 = IDSSECURITYLABEL 4118 = ROW(命名) |
collength | 任何以下数据类型: 基于整数 可变长度字符 时间 定点 简单大对象 IDSSECURITYLABEL | 值决定于列的数据类型。对于某些数据类型,值是列长(以字节为单位)。请参阅存储列长以获取更多信息。 |
colmin | INTEGER | 最小列长(以字节计) |
colmax | INTEGER | 最大列长(以字节计) |
extended_id | INTEGER | 在 coltype 列中指定的数据类型的数据类型代码(来自 sysxtdtypes 表) |
seclabelid | INTEGER | 安全标号的标号标识与该列相关联(如果该列为受保护的列)。否则,其标号标识为 NULL。 |
colattr | SMALLINT | HIDDEN 1 - 隐藏的列 ROWVER 2 - 行版本列 ROW_CHKSUM 4 - 行键列 ER_CHECKVER 8 - ER 行版本列 UPGRD1_COL 16 - ER 自动主键列 UPGRD2_COL 32 - ER 自动主键列 UPGRD3_COL 64 - ER 自动主键列 PK_NOTNULL 128 - NOT NULL by PRIMARY KEY CD_VIRTUAL_COL 256 - 虚拟列 CD_VIRCOL_TYPE 512 - 虚拟列定义列类型 |
1 在 DB-Access 中,总是将偏移值 256 添加到这些 coltype 代码上,因为 DB-Access 会将 SERIAL、SERIAL8 和 BIGSERIAL 列设置为 NOT NULL。
2 请参阅不透明数据类型以获取更多信息。
tabid 和 colno 列的组合索引只允许唯一值。
coltype 代码可通过显示列的以下特征的位图递增。
位值 | 设置位时的有效值 |
---|---|
0x0100 | 不允许使用 NULL 值 |
0x0200 | 值来自主变量 |
0x0400 | 用于联网的数据库服务器的点分十进制 |
0x0800 | DISTINCT 数据类型 |
0x1000 | 命名 ROW 类型 |
0x2000 | LVARCHAR 基本类型中的 DISTINCT 类型 |
0x4000 | BOOLEAN 基本类型中的 DISTINCT 类型 |
0x8000 | 在客户机系统上处理的集合 |
例如,命名行类型的 coltype 值 4118 是十六进制值 0x1016 的十进制表示法,该十六进制值与设置了命名行类型位的未命名行类型 0x016 的十六进制 coltype 值相同。文件 $GBASEDBTDIR/incl/esql/sqltypes.h 包含有关 syscolumns.coltype 代码的其他信息。
NOT NULL 约束
同样,如果列不允许使用 NULL 值,那么 coltype 值将增加 256。要确定这种列的数据类型,根据可能的 coltype 值,从值中减去 256 并求余数。例如,如果 coltype 值为 262,减去 256 得到余数 6,那么这表示列具有 SERIAL 数据类型。
存储列数据类型
数据库服务器将 coltype 值作为位图存储,如 SYSCOLUMNS 中列示的那样。
不透明数据类型
特定数据类型是由数据库服务器作为内置不透明数据类型来实现的。内置不透明数据类型的类型定义由数据库服务器提供。
内置不透明类型没有唯一的 coltype 值。相反,coltype 值基于不透明类型的类别。以下表列出内置不透明数据类型的 coltype 值:
不透明数据类型的类别 | 预定义数据类型 | coltype 列的值 |
---|---|---|
固定长度不透明类型 | BLOB、BOOLEAN 和 CLOB | 41 |
长度可变的不透明类型 | LVARCHAR | 40 |
VARCHAR(128) 的 DISTINCT | IDSSECURITYLABEL | 2061 |
使用 sysxtdtypes 系统目录表中的 extended_id 列来区分不同的固定长度不透明类型。
存储列长度
collength 列值取决于列的数据类型。
基于整数的数据类型
BIGINT、BIGSERIAL、DATE、INTEGER、INT8、SERIAL、SERIAL8 或 SMALLINT 列的 collength 值与机器无关。数据库服务器对 SQL 语言的这些基于整数的数据类型使用以下长度。
基于整数的数据类型 | 长度(以字节计) |
---|---|
SMALLINT | 2 |
DATE、INTEGER 和 SERIAL | 4 |
INT8 和 SERIAL8 | 10 |
BIGINT 和 BIGSERIAL | 8 |
可变长度字符数据类型
对于 LVARCHAR 类型的 GBase 8s 列,collength 具有来自数据类型声明的 max 值或 2048(如果没有指定最大值)。
对于 VARCHAR 或 NVARCHAR 列,max_size 和 min_space 值是使用以下某个公式编码在 collength 列中:
如果 collength 值是正的:
collength = (min_space * 256) + max_size
如果 collength 值是负的:
collength + 65536 = (min_space * 256) + max_size
时间数据类型
如前面所述,DATE 列在 collength 列中的值为 4。
对于类型为 DATETIME 或 INTERVAL 的列,collength 是使用以下公式确定的:
(length * 256) + (first_qualifier * 16) + last_qualifier
长度是 DATETIME 或 INTERVAL 字段的实际长度,first_qualifier 和 last_qualifier 具有下表所显示的值。
字段限定符 | 值 | 字段限定符 | 值 |
---|---|---|---|
YEAR | 0 | FRACTION(1) | 11 |
MONTH | 2 | FRACTION(2) | 12 |
DAY | 4 | FRACTION(3) | 13 |
HOUR | 6 | FRACTION(4) | 14 |
MINUTE | 8 | FRACTION(5) | 15 |
SECOND | 10 |
例如:如果 DATETIME YEAR TO MINUTE 列长度为 12(例如:YYYY*:DD:MO:HH:MI)*,first_qualifier 值为 0(用于 YEAR),并且 last_qualifier 值为 8(用于 MINUTE),那么 collength 值为 3080(由 (256 * 12) + (0 * 16) + 8 计算所得)。
定点数据类型
MONEY 或 DECIMAL(p,s) 列的 collength 值可使用以下公式来计算:
(precision * 256) + scale
简单大对象数据类型
如果列的数据类型为 BYTE 或 TEXT,那么 collength 保存描述符的长度。
存储最大值和最小值
colmin 和 colmax 值分别保存该列中第二小和第二大的数据值。例如:如果索引列中的各个值为 1、2、3、4 和 5,那么 colmin 值为 2 而 colmax 值为 4。存储第二小的数据值和第二大的数据值会让查询优化器对列中的值范围进行假设并进一步依次优化搜索策略。
仅当对列建立了索引并且 UPDATE STATISTICS 语句显式或隐式地计算了列分发时,colmin 和 colmax 列才会包含值。如果在表空间中存储 BYTE 或 TEXT 数据,那么 colmin 值会编码为 -1。
colmin 和 colmax 列仅对适合四个字节的数据类型有效:SMALLFLOAT、SMALLINT、INTEGER 以及 CHAR 的前四个字节。所有其他非整数列类型的值是最大值或最小值的头四个字节,它们被视为整数。
使用 UPDATE STATISTICS MEDIUM 比依赖于 colmin 和 colmax 值要好。UPDATE STATISTICS MEDIUM 提供了更好的信息并且对于所有数据类型都有效。
GBase 8s 不计算用户定义的数据类型的 colmin 和 colmax 值。但是,如果用户定义的辅助访问方法提供了用户定义的数据类型,那么这些列具有用户定义的数据类型的值。
SYSCOLUMNSEXT
syscolumnsext 表是基于 syscolumns 系统目录表的视图。它对于在表或视图中定义的每一列,都会有一行存在。
syscolumnsext 表具有以下列:
列 | 类型 | 解释 |
---|---|---|
colname | VARCHAR(128) | 列名 |
tabid | INTEGER | 包含列的表的标识代码 |
colno | SMALLINT | 列号 系统按顺序指定此列号(在每个表中从左到右)。 |
coltype | SMALLINT | 指示该列的数据类型的代码。 有关代码的详细信息,请参阅 syscolunms 的 coltype 列。 |
coltypename | LVARCHAR(2048) | 数据类型名称。Oracle 兼容格式。 CHAR、SMALLINT 、 INTEGER、FLOAT、 SMALLFLOAT 、DECIMAL、 SERIAL 、DATE 、 MONEY 、NULL 、 DATETIME、BYTE 、 TEXT 、 VARCHAR 、 INTERVAL、 NCHAR 、NVARCHAR、INT8 、 SERIAL8 、SET 、 MULTISET 、LIST 、 ROW、COLLECTION 、 BOOL 、ROWREF、 BIGINT 、BIGSERIAL。 |
coltypename2 | LVARCHAR(2048) | 数据类型名称。特定于 GBase 8s 格式。 指示该列的数据类型可为: CHAR、SMALLINT 、 INTEGER、FLOAT、 SMALLFLOAT 、DECIMAL、 SERIAL 、DATE 、 MONEY 、NULL 、 DATETIME 1 (特定于 G8ase 8s)、BYTE 、 TEXT 、VARCHAR 、 INTERVAL 2(特定于 G8ase 8s)、 NCHAR 、NVARCHAR、INT8 、 SERIAL8 、SET 、 MULTISET 、LIST 、 ROW、COLLECTION 、 BOOLEAN 、ROWREF、 BIGINT 、BIGSERIAL。 |
collength | 任何以下数据类型: 基于整数 可变长度字符 时间 定点 简单大对象 IDSSECURITYLABEL | 值决定于列的数据类型。对于某些数据类型,值是列长(以字节为单位)。请参阅存储列长以获取更多信息。 |
colmin | INTEGER | 最小列长(以字节计) |
colmax | INTEGER | 最大列长(以字节计) |
extended_id | INTEGER | 在 coltype 列中指定的数据类型的数据类型代码(来自 sysxtdtypes 表) |
seclabelid | INTEGER | 安全标号的标号标识与该列相关联(如果该列为受保护的列)。否则,其标号标识为 NULL。 |
colattr | SMALLINT | HIDDEN 1 - 隐藏的列 ROWVER 2 - 行版本列 ROW_CHKSUM 4 - 行键列 ER_CHECKVER 8 - ER 行版本列 UPGRD1_COL 16 - ER 自动主键列 UPGRD2_COL 32 - ER 自动主键列 UPGRD3_COL 64 - ER 自动主键列 PK_NOTNULL 128 - NOT NULL by PRIMARY KEY |
此表是 GBase 8s 数据库基于 SYSCOLUMNS 的扩展。SYSCOLUMNS 仍可以作为系统目录表使用,您可对 SYSCOLUMNS 进行访问,请参阅 SYSCOLUMNS。它对于新增的视图和表的一列,都存在一行,并指示列的数据类型名称。
新增的 coltypename 列和 coltypename2 列提供对数据类型以字符形式显示 coltype 的支持。coltypename 兼容 oracle 数据类型格式。而 coltypename2 特定于 GBase 8s 格式。
SYSCOLCOMMS
syscolcomms 系统目录表用于存储列的注释信息。对于每个添加注释的列,都存在一行。如果从其所属表删除该列,则此行信息同步删除。
syscolcomms 表具有以下列:
列 | 数据类型 | 解释 |
---|---|---|
tabint | CHAR(32) | 表名 |
colno | SMALLINT | 列 ID |
comments | NVARCHAR(255) | 用户为列添加注释的内容 |
SYSCOLCOMMENTS
syscolcomments 表是基于 syscolcomms 表的视图。它对于每个添加注释的列,都存在一行。如果从其所属表删除该列,则此行信息同步删除。
syscolcomments 表具有以下列:
列 | 数据类型 | 解释 |
---|---|---|
tabname | CHAR(32) | 表名 |
colname | CHAR(32) | 列名 |
comments | NVARCHAR(255) | 用户为列添加注释的内容 |
要查看已添加注释的列的信息,可以对该表执行 SELECT 语句。
SYSCOMMAUTH
syscommauth 系统目录表描述对表、视图或列授予的注释权限。对于授予注释权限的用户,都存在一行。 如果移除此用户的 COMMENT 权限,则从此表删除对应的一行。
syscommauth 表具有以下列:
字段 | 数据类型 | 解释 |
---|---|---|
username | CHAR(32) | 用户名 |
SYSCOMMS
syscomms 系统目录表用于存储表、视图注释的信息。对于每个要添加注释的表或视图,都存在一行。如果删除该表或视图,则此行信息同步删除。
syscomms 表具有以下列:
字段 | 数据类型 | 解释 |
---|---|---|
tabid | INTEGER | 唯一地标识表的代码 |
comments | NVARCHAR(255) | 用户为表或视图添加的注释 |
SYSCOMMENTS
syscomments 表是基于 syscomms 系统目录表的视图。它对于每个要添加注释的表或视图,都存在一行。如果删除该表或视图,则此行信息同步删除。
syscomments 表具有以下列:
字段 | 数据类型 | 解释 |
---|---|---|
tabname | CHAR(32) | 表名、视图名 |
comments | NVARCHAR(255) | 用户为表或视图添加的注释 |
tabtype | CHAR(1) | 标识对象类型的代码: T = 表 V = 视图 |
要查看用户表的注释信息,可以对该表执行 SELECT 语句。
SYSCONSTRAINTS
sysconstraints 系统目录表列出了对每个数据库表中的各个列设置的约束。在 sysindexes 系统目录表(或 GBase 8s 的 sysindices 视图)中对在 sysindexes 或 sysindices 中尚未有对应条目的每个唯一的主键或引用约束也设置了一个条目。由于索引可以共享,所以多个约束可以与一个索引相关联。sysconstraints 表具有以下列。
表 11. SYSCONSTRAINTS 表列描述
列 | 类型 | 解释 |
---|---|---|
constrid | SERIAL | 唯一地标识约束的代码 |
constrname | VARCHAR(128) | 约束的名称 |
owner | VARCHAR(32) | 约束所有者的名称 |
tabid | INTEGER | 唯一地标识表的代码 |
constrtype | CHAR(1) | 标识约束类型的代码: C = 检查约束 N = Not NULL P = 主键 R = 引用 T = 表 U = 唯一 |
idxname | VARCHAR(128) | 与约束相对应的索引的名称 |
collation | CHAR(32) | 创建约束时的排列顺序。 |
constrname 和 owner 列的组合索引只允许唯一值。tabid 列的索引允许重复值,但 constrid 列的索引只允许唯一值。
对于检查约束(其中 constrtype = C),idxname 始终为 NULL。有关每个检查约束的其他信息包括在 syschecks 和 syscoldepend 系统目录表中。
SYSDEFAULTS
sysdefaults 系统目录表列出了对数据库中的每一列设置的用户定义的缺省值。对于每个用户定义的缺省值,都存在一行。
sysdefaults 表具有以下列:
表 12. SYSDEFAULTS 表列描述
列 | 类型 | 解释 |
---|---|---|
tabid | INTEGER | 唯一地标识表的代码。当 class 列包含代码 P 时,tabid 列会引用过程标识,而不是表标识。 |
colno | SMALLINT | 唯一地标识列的代码。 |
type | CHAR(1) | 标识缺省值类型的代码:C = 当前 L = 文字值 N = NULL S = Dbservername 或 Sitename T = 今天 U = 用户 |
default | CHAR(256) | 如果 sysdefaults.type = L,那么为文字缺省值。 |
class | CHAR(1) | 标识列种类的代码:T = 表 t = ROW 类型 P = 过程 |
如果 CREATE TABLE 或 ALTER TABLE 语句中未明确指定缺省值,那么 sysdefaults 表中不存在该列的条目。
如果指定文字作为缺省值,那么它将以 ASCII 文本的形式存储在缺省列中。如果文字值不是下一段中列出的数据类型之一,那么 default 列由两部分组成。第一部分是缺省值结构的二进制值的 6 位表示法。第二部分是 ASCII 文本形式的缺省值。这两个部分由空格隔开。
如果列的数据类型不是 CHAR、NCHAR、NVARCHAR 或 VARCHAR 或者(用于 GBase 8s)BOOLEAN 或 LVARCHAR,那么在缺省列中对缺省值的二进制表示进行编码。
tabid、colno 和 class 列的组合索引只允许唯一值。
SYSDEFAULTSEXPR
sysdefaultsexpr 系统目录表存储 default 的表达式信息,它列出了对数据库中的每一列定义缺省值时,为其设置的函数的内容。
sysdefaultsexpr 表具有以下列:
表 12. SYSDEFAULTSEXPR 表列描述
列 | 类型 | 解释 |
---|---|---|
tabid | INTEGER | 唯一地标识表的代码。 |
colno | SMALLINT | 唯一地标识列的代码。 |
type | CHAR(1) | 标识存储类型的代码: ‘T’ 为原始文档的信息; ‘B’ 为表达式二进制内容。 |
seqno | SMALLINT | 序号从 0 开始,表示同类信息分割后的顺序号。 |
default | CHAR(32) | 存储相应的default或者虚拟列内容。 |
vtcol | SMALLINT | 虚拟列标志: 0:default表达式 1:虚拟列表达式 |
如果 CREATE TABLE 或 ALTER TABLE 语句中未明确为缺省值设置函数,那么 sysdefaultsexpr 表中不存在该列的条目。
该表存储用户输入的表达式的两种形式:文本和二进制。文本内容为用户 SQL 的原始信息,用于在系统表中可视化查询相关信息。二进制为 default 表达式语法解析后生成的 statement 数据结构再经过一定编码处理后的信息,此信息用于使用 default 表达式进行求值。
SYSDEPEND
sysdepend 系统目录表描述每个视图或表与其他视图或表的依赖性。对于每个依赖性,此表中都存在一行,所以基于三个表的视图有三行。sysdepend 表具有以下列。
表 13. SYSDEPEND 表列描述
列 | 类型 | 解释 |
---|---|---|
btabid | INTEGER | 唯一地标识基本表或视图的代码 |
btype | CHAR(1) | 基本对象类型:T = 表 V = 视图 |
dtabid | INTEGER | 唯一地标识从属表或视图的代码 |
dtype | CHAR(1) | 从属对象的类型的代码;当前,只实现了视图(V = 视图) |
建立了 btabid 和 dtabid 列的索引,并且这些列允许重复值。
SYSDIRECTIVES
Sysdirectives 表存储可应用于查询的外部优化器伪指令。客户机应用程序中的查询是否能够使用这些优化器伪指令取决于客户机系统上环境变量 IFX_EXTDIRECTIVES 的设置(如第 3 章所述),并取决于数据库服务器的配置文件中的 EXT_DIRECTIVES 设置。
sysdirectives 表具有以下列:
表 14. SYSDIRECTIVES 表列描述
列 | 类型 | 解释 |
---|---|---|
id | SERIAL | 标识优化器伪指令的唯一代码 |
query | TEXT | 查询的文本(如其在应用程序中所存在的一样) |
directives | TEXT | 优化器伪指令的文本(没有注释) |
active | SMALLINT | 整数代码,它标识此条目是有效 (= 1) 还是仅测试 (= 2) |
hash_code | SMALLINT | 仅供内部使用 |
NULL 值在 query 列中无效。在 id 列上有唯一索引。
SYSDISTRIB
sysdistrib 系统目录表存储数据分发信息以供查询优化器使用。数据分发为优化器提供了详细的表和列信息以改进 SELECT 语句的执行路径的选择。
sysdistrib 表具有以下列。
表 15. SYSDISTRIB 表列描述
列 | 类型 | 解释 |
---|---|---|
tabid | INTEGER | 标识从中收集数据值的表的代码 |
colno | SMALLINT | 源表中的列号 |
seqno | INTEGER | 多个条目的顺序号码 |
constructed | DATETIME YEAR TO FRACTION(5) | 创建数据分发时的日期 |
mode | CHAR(1) | 优化级别:M = 中 H = 高 |
resolution | SMALLFLOAT | 在 UPDATE STATISTICS 语句中指定 |
confidence | SMALLFLOAT | 在 UPDATE STATISTICS 语句中指定 |
encdat | STAT | 统计信息 |
type | CHAR(1) | 统计信息的类型: A = encdat 在固定长度字符字段中具有 ASCII 编码的直方图 S = encdat 具有用户定义的统计信息 |
smplsize | SMALLFLOAT | 大于 0 且不超过 1.0 的值表示 UPDATE STATISTICS 对表中总行数采样的比例。大于 1.0 的值表示 UPDATE STATISTICS 所采样的实际使用行数。值 0 表示未指定采样大小。UPDATE STATISTICS HIGH 总是更新所有行的统计信息。 |
rowssampled | FLOAT | 样本中的行数 |
constr_time | DATETIME YEAR TO FRACTION(5) | 记录分发的时间 |
ustnrows | FLOAT | 计算分发时分段中的行。 |
ustbuildduration | INTERVAL HOUR TO FRACTION(5) | 计算此列的分发统计信息所花费的时间 |
nupdates | FLOAT | 表的更新数 |
ndeletes | FLOAT | 表的删除数 |
ninserts | FLOAT | 表的插入数 |
当以方式 MEDIUM 或 HIGH 对某张表执行 UPDATE STATISTICS 语句时,会将信息存储在 sysdistrib 表中。(UPDATE STATISTICS LOW 不会将值插入到 mode 列中。)
只有用户 gbasedbt 才能选择 encdat 列。
sysdistrib 系统目录表中的每一行都使用 tabid 和 colno 列(为它们收集统计信息)作为键。
对于内置数据类型的列,将类型字段设置为 A。encdat 列存储用 ASCII 编码的直方图,此直方图分为多行,每行包含 256 个字节。
在 GBase 8s 中,对于用户定义的数据类型的列,type 字段设置为 S。encdat 列以多重表示格式存储由 statcollect 用户定义的例程收集的统计信息。对每个 tabid 和 colno 对只存储一行。tabid、colno 和 seqno 列的组合索引只允许这些值的唯一组合。
以下三个 DML 计数器列会记录在生成列分发统计信息时对表执行修改数据行的 DML 操作的计数:
nupdates 中的 UPDATE 操作数
ndeletes 中的 DELETE 操作数
和 ninserts 中的 INSERT 操作数
这些计数还可包括 MERGE 语句修改的行。
这些 DML 计数器列会存储在生成分发统计信息时存在的服务器分区中的计数器值。如果 AUTO_STAT_MODE 配置参数、AUTO_STAT_MODE 会话环境设置或 UPDATE STATISTICS 语句的 AUTO 关键字已启用数据分发统计信息的选择性更新,那么 ninserts、ndeletes 和 ninserts 值可影响 UPDATE STATISTICS 操作是否刷新现有数据分发统计信息。当以 MEDIUM 或 HIGH 方式对表运行 UPDATE STATISTICS 语句时,数据库服务器会比较这些列中的已存储值与分区中的当前值。如果已存储值之和不同于分区页面中的这些当前 sysdistrib DML 计数器值之和,少于 STATCHANGE 表属性或 STATCHANGE 配置参数的设置所指定的阈值,那么不会更新表的列分发统计信息。
SYSDOMAINS
不使用 sysdomains 视图。它显示其他系统目录表的列。它具有以下列。
表 16. SYSDOMAINS 表列描述
列 | 类型 | 解释 |
---|---|---|
id | SERIAL | 标识域的唯一代码 |
owner | CHAR(32) | 域所有者的名称 |
name | VARCHAR(128) | 域的名称 |
type | SMALLINT | 标识域的类型的代码 |
此视图没有索引。
SYSERRORS
syserrors 系统目录表存储有关错误、警告和参考消息(由使用 mi_db_error_raise( ) DataBlade API 函数的 DataBlade 模块和用户定义的例程返回)的信息。
syserrors 表具有以下列。
列 | 类型 | 解释 |
---|---|---|
sqlstate | CHAR(5) | 与错误关联的 SQLSTATE 值。 |
locale | CHAR(36) | 与此版本的消息相关联的语言环境(例如:en_us.8859-1) |
level | SMALLINT | 保留供将来使用 |
seqno | SMALLINT | 保留供将来使用 |
message | VARCHAR(255) | 消息文本 |
要创建新的消息,将一行直接插入 syserrors 表中。缺省情况下,所有用户都可以查看此表,但只有具有 DBA 特权的用户才能对其进行修改。
sqlstate、locale、level 和 seqno 列的组合索引只允许使用唯一值。
SYSEXTCOLS
sysextcols 系统目录表包含一行,该行描述格式类型 (fmttype) 为 FIXED 的外部表 tabid 中的每个内部列。
sysextcols 表具有以下列。
列 | 类型 | 解释 |
---|---|---|
tabid | INTEGER | 表的唯一标识代码 |
colno | SMALLINT | 标识列的代码 |
exttype | SMALLINT | 标识外部列类型的代码 |
extstart | SMALLINT | 外部数据文件中列的起始位置 |
extlength | SMALLINT | 外部列长(以字节计) |
nullstr | CHAR(256) | 在外部数据中表示 NULL |
decprec | SMALLINT | 外部小数的精度 |
extstype | VARCHAR(128,0) | 外部类型名 |
对于 DELIMITED 或 GBase 8s 格式外部文件,sysextcols 中没有存储任何条目。
可使用 DBSCHEMA 实用程序来编写外部表的描述。要查询有关外部表的这些系统目录表,请使用存储在 systables 中并且 tabtype =“E”的 tabid。
tabid 列的索引允许重复值。
SYSEXTDFILES
sysextdfiles 系统目录表包含外部表的标识代码和路径。
对于每个外部表,具有以下列的 sysextdfiles 系统目录表中至少存在一行。
列 | 类型 | 解释 |
---|---|---|
tabid | INTEGER | 外部表的唯一标识代码 |
dfentry | CHAR(598) | 源或目标文件绝对路径 |
blobdir | CHAR(473) | 绝对或相对目录名称 |
clobdir | CHAR(473) | 绝对或相对目录名称 |
可使用 DBSCHEMA 来编写外部表的描述。要查询有关外部表的这些系统目录表,请使用存储在 systables 中并且 tabtype =“E”的 tabid。
tabid 列的索引允许重复值。
SYSEXTERNAL
对于每个外部表,sysexternal 系统目录表中都存在单个行。
tabid 列使此系统目录表中的外部表记录与 systables 中的条目相关联。
列 | 类型 | 解释 |
---|---|---|
tabid | INTEGER | 外部表的唯一标识代码 |
fmttype | CHAR(1) | 格式的类型:D =(定界)F =(固定)I = (GBase 8s) |
recdelim | VARCHAR(128) | 记录定界符 |
flddelim | CHAR(4) | 字段定界符 |
datefmt | CHAR(8) | 保留供将来使用 |
moneyfmt | CHAR(20) | 保留供将来使用 |
maxerrors | INTEGER | 允许的错误数 |
rejectfile | CHAR(464) | 拒绝文件的名称 |
flags | INTEGER | 可选装入标志 |
ndfiles | INTEGER | sysextdfiles 中的数据文件数 |
可使用 dbschema 实用程序来编写外部表的描述。要查询有关外部表的这些系统目录表,请使用存储在 systables 中并且 tabtype =“E”的 tabid。
tabid 列的索引只允许唯一值。
SYSFRAGAUTH
sysfragauth 系统目录表存储有关对表分段授予的特权的信息。此表具有以下列。
表 17. SYSFRAGAUTH 表列描述
列 | 类型 | 解释 |
---|---|---|
grantor | CHAR(32) | 特权授权者的名称 |
grantee | CHAR(32) | 特权被授权者的名称 |
tabid | INTEGER | 标识分段表的代码 |
fragment | VARCHAR(128) | 存储分段的数据库空间的名称 |
fragauth | CHAR(6) | 指定分段特权的 6 字节模式(包括保留供将来使用的 3 个字节): u 或 U = Update i 或 I = Insert d 或 D = Delete |
在 fragauth 列中,大写代码(例如:U 表示 Update)意味着被授权者可以将该特权授予其他用户;小写(例如:u 表示 Update)意味着用户不能将该特权授予他人。连字符 ( - ) 指示 tabauth 模式内该位置缺少对应的特权。
tabid、grantor、grantee 和 fragment 列的组合索引只允许唯一值。tabid 和 grantee 列的组合索引允许重复值。
以下示例显示了一个基本表的分段级别特权(这些特权存在于 sysfragauth 表中)。在此示例中,被授权者 rajesh 可将 Update、Delete 和 Insert 特权授予其他用户。
grantor | grantee | tabid | fragment | fragauth |
---|---|---|---|---|
dba | omar | 101 | dbsp1 | -ui--- |
dba | jane | 101 | dbsp3 | --i--- |
dba | maria | 101 | dbsp4 | --id-- |
dba | rajesh | 101 | dbsp2 | -UID-- |
SYSFRAGDIST
sysfragdist 系统目录表会存储分段表和索引的分段级别列统计信息。对于每个表分段或索引分段,都存在一行。
此处仅描述分段表中的列。(对于表级别列统计信息,请参阅 sysdistrib 系统目录表。)
sysfragdist 表具有以下列。
列 | 类型 | 解释 |
---|---|---|
tabid | INTEGER | 表的唯一标识代码 ( = systables.tabid) |
fragid | INTEGER | 分段的唯一标识代码 ( = sysfragments.partnum) |
colno | SMALLINT | 列的唯一标识代码 ( = syscolumns.colno) |
seqno | SMALLINT | 序号(用于跨多行的分发) |
mode | CHAR(1) | UPDATE STATISTICS 方式(H = 高,或 M = 中) |
resolution | SMALLFLOAT | 每个二进制文件中样本的平均百分比 |
confidence | SMALLFLOAT | MEDIUM 方式样本值相当于确切 HIGH 方式结果的估算可能性 |
rowssampled | FLOAT | 样本中的行数 |
ustbuildduration | INTERVAL HOUR TO FRACTION(5) | 计算此列分发所花费的时间 |
constr_time | DATETIME YEAR TO FRACTION(5) | 记录分发的时间 |
ustnrows | FLOAT | 计算分发时分段中的行。 |
minibinsize | FLOAT | 仅供内部使用 |
nupdates | FLOAT | 表的更新数 |
ndeletes | FLOAT | 表的删除数 |
ninserts | FLOAT | 表的插入数 |
encdist | BLOB | 加密分段分发 |
sbsnum | INTEGER | 存储 encdist 的智能大对象空间的唯一标识代码 |
version | INTEGER | 保留供将来使用 |
具有给定 tabid、fragid 和 colno 值组合的行集用于标识该表分段的列统计信息。通过将 seqno 列用于排序号,这些统计信息可跨多行。
在计算分段列统计信息的 UPDATE STATISTICS MEDIUM 或 HIGH 语句中指定的 mode、resolution 和 confidence 值会记录在相同名称的 sysfragdist 列中。要使用现有分段统计信息来构建表统计信息,这三个参数在引用相同表的分段的 UPDATE STATISTICS 语句之间不应该更改。唯一例外是“H”方式分段统计信息可用于构建“M”方式表统计信息。
分段的列分发统计信息存储在 BLOB 列 encdist 中。sbsnum 列存储了描述此分段的 encdist 对象所存储在的智能 blob 空间的标识代码。缺省情况下,SBSPACENAME 配置参数设置是标识代码在 sbsnum 列中的智能大对象空间的标识。
以下三列会记录生成列分发统计信息时对分段执行修改数据行的 DML 操作的计数:
nupdates 中的 UPDATE 操作数
ndeletes 中的 DELETE 操作数
和 ninserts 中的 INSERT 操作数
这些计数还可包括 MERGE 语句修改的行。
这些 DML 计数器列会存储在生成分发统计信息时存在的服务器分区中的计数器值。当以 MEDIUM 或 HIGH 方式对具有分段级别统计信息的分段表运行 UPDATE STATISTICS 时,数据库服务器会比较这些列中的已存储值与分区中的当前值。
如果 AUTO_STAT_MODE 配置参数、AUTO_STAT_MODE 会话环境设置或 UPDATE STATISTICS 语句的 AUTO 关键字已启用数据分发统计信息的选择性更新,那么 ninserts、ndeletes 和 ninserts 值可影响 UPDATE STATISTICS 操作是否刷新分段的现有数据分发统计信息。如果已存储值之和不同于分区页面的这些当前 DML 计数器值之和,少于 STATCHANGE 表属性或 STATCHANGE 配置参数的设置所指定的阈值,那么与 sysfragdist 表中行对应的分段列统计信息不会更新。
SYSFRAGMENTS
sysfragments 系统目录表存储表和索引的个别分段的分段存储信息和 LOW 方式统计信息分发。对于每个表分段或索引分段,都存在一行。
sysfragments 表具有以下列。
列 | 类型 | 解释 |
---|---|---|
fragtype | CHAR(1) | 指示分段对象类型的代码: I = 原始索引分段 T = 原始表分段 |
tabid | INTEGER | 表的唯一标识代码 |
indexname | VARCHAR(128) | 索引的名称 |
colno | INTEGER | TEXT 或 BYTE 列的标识代码或滚动窗口分段数上限 |
partn | INTEGER | 物理存储位置的标识代码 |
strategy | CHAR(1) | 分段分布策略的类型的代码: R = 循环分段存储策略 E = 基于表达式的分段存储策略 I = IN DBSPACE 子句指定作为分段存储策略一部分的存储位置 N = 时间间隔(或滚动窗口)分段存储策略 N = 时间间隔分段存储策略 L = 列表分段存储策略 T = 基于表的分段存储策略 H = 表是表层次结构内的子表 S = Hash distribution strategy |
location | CHAR(1) | 保留供将来使用;对于本地,显示 L |
servername | VARCHAR(128) | 保留供将来使用 |
evalpos | INTEGER | 分段存储列表中的分段位置。 对于按 INTERVAL 的分段存储,为指示 exprtext 字段中信息类型的以下某个值: -1 = 时间间隔分段的数据库空间列表 -2 = 时间间隔值 -3 = 分段存储键 -4 = 滚动窗口分段 按 LIST 的分段存储也使用值 -3。 |
exprtext | TEXT | 分段存储策略的表达式 对于按 INTERVAL、LIST 或滚动窗口进行的分段存储,提供与 evalpos 字段值对应的信息。 对于按 INTERVAL 或 LIST 的分段存储,提供与 evalpos 字段值对应的信息。 |
exprbin | BYTE | 表达式的二进制版本 |
exprarr | BYTE | 用于优化范围表达式分段存储策略中的表达式的范围分区数据 |
flags | INTEGER | 供内部使用 |
dbspace | VARCHAR(128) | 存储此分段的数据库空间的名称 |
levels | SMALLINT | B 型树索引级别数 |
npused | FLOAT | 对于表分段存储策略:数据页数 对于索引分段存储策略:叶子页数 对于滚动窗口表:nrows 中存储大小限制的单位数 |
nrows | FLOAT | 对于表:分段中的行数。 对于索引:唯一键数。 对于滚动窗口表:清除策略中的存储大小上限。 |
clust | FLOAT | 索引集群的程度;较小的数字对应较大的集群 |
partition | 分段的名称 | 可匹配存储分段的 GBase 8s 数据库空间的名称,也可以为不同名称 |
version | SMALLINT | 更新分段统计信息时递增的数字 |
nupdates | FLOAT | 分段的更新数 |
ndeletes | FLOAT | 分段的删除数 |
ninserts | FLOAT | 分段的插入数 |
每个分段在此表中都有一行。evalpos 和 evaltext 字段包含有关个别分段的信息。
使用按 INTERVAL 或 LIST 的分段存储创建的表和索引具有包含有关分段存储策略信息的其他行。
strategy 类型 T 用于连接索引。(这是其分段存储策略与表分段存储相同的分段索引。)
对表的分发统计信息最近一次重新计算以来,有关该表的 sysfragments 制表 DML 操作中 nupdates、ndeletes 和 ninserts 列的信息,请参阅在 SYSDISTRIB系统目录表中具有相同名称的三个列的描述。
在 GBase 8s 中,fragtype、tabid、indexname 和 evalpos 列上的组合索引允许重复值。
SYSINDEXES
sysindexes 表是基于 sysindices 表的视图。它对数据库中的每个索引包含一行。
sysindexes 表具有以下列。
表 18. SYSINDEXES 表列描述
列 | 类型 | 解释 |
---|---|---|
idxname | VARCHAR(128) | 索引名 |
owner | VARCHAR(32) | 索引的所有者(系统目录表的用户 gbasedbt 和数据库表的 username) |
tabid | INTEGER | 表的唯一标识代码 |
idxtype | CHAR(1) | 索引类型: U = 唯一 D = 允许重复 G = 非位图通用键索引 g = 位图通用键索引 u = 唯一,位图 d = 非唯一,位图 |
集群 | CHAR(1) | 集群或非集群索引(C = 集群) |
part1 | SMALLINT | 单个索引或组合索引的第 1 个组件的列号 (colno) |
part2 | SMALLINT | 组合索引的第 2 个组件 |
part3 | SMALLINT | 组合索引的第 3 个组件 |
part4 | SMALLINT | 组合索引的第 4 个组件 |
part5 | SMALLINT | 组合索引的第 5 个组件 |
part6 | SMALLINT | 组合索引的第 6 个组件 |
part7 | SMALLINT | 组合索引的第 7 个组件 |
part8 | SMALLINT | 组合索引的第 8 个组件 |
part9 | SMALLINT | 组合索引的第 9 个组件 |
part10 | SMALLINT | 组合索引的第 10 个组件 |
part11 | SMALLINT | 组合索引的第 11 个组件 |
part12 | SMALLINT | 组合索引的第 12 个组件 |
part13 | SMALLINT | 组合索引的第 13 个组件 |
part14 | SMALLINT | 组合索引的第 14 个组件 |
part15 | SMALLINT | 组合索引的第 15 个组件 |
part16 | SMALLINT | 组合索引的第 16 个组件 |
levels | SMALLINT | B 型树级别的数目 |
leaves | INTEGER | 叶的数目 |
nunique | INTEGER | 第一列中唯一键的数目 |
clust | INTEGER | 集群的程度;较小的数字对应较大的集群 |
idxflags | INTEGER | 存储索引的当前锁定方式的位图 |
对于大多数系统目录表,仅当运行了 UPDATE STATISTICS 语句之后才会在此表中反映影响现有索引的更改。
此表中 part1 至 part16 列中的每一列都保存组合索引的 16 个可能部件之一的列号 (colno)。如果以降序顺序对组件排序,那么 colno 输入为负值。对于不使用用户定义的数据类型或函数索引的 B 型树索引填充此列。对于类属 B 型树和所有其他访问方法,part1 至 part16 列都包含零。
在对表运行 UPDATE STATISTICS 语句之前,clust 列是空白的。最大值是表中的行数,最小值是表中的数据页数。
SYSINDICES
sysindices 系统目录表描述数据库中的索引。它存储所有索引的 LOW 方式统计信息,且对在数据库中定义的每个索引包含一行。
表 19. sysindices 系统目录表列
列 | 类型 | 解释 |
---|---|---|
idxname | VARCHAR(128) | 索引的名称 |
owner | VARCHAR(32) | 索引所有者的名称(系统目录表的用户 gbasedbt 和数据库表的 username) |
tabid | INTEGER | 表的唯一标识代码 |
idxtype | CHAR(1) | 唯一性状态 U = 需要唯一值 D = 允许重复 |
集群 | CHAR(1) | 集群或非集群状态(C = 集群) |
levels | SMALLINT | 树的层数 |
leaves | FLOAT | 叶的数目 |
nunique | FLOAT | 第一列中唯一键的数目 |
clust | FLOAT | 集群的程度;较小的数字对应较大的集群。最大值是表中的行数,最小值是表中的数据页数。对表运行 UPDATE STATISTICS 之前,此列是空白的。 |
nrows | FLOAT | 表中的估计行数(在对表运行 UPDATE STATISTICS 之前为零) |
indexkeys | INDEXKEYARRAY | 索引键的内部表示法。列最多可有三个字段,格式为:procid, (col1,col2, . . . , coln),opclassid,其中 1 < n < 341 |
amid | INTEGER | 实现此索引的访问方法的唯一标识代码。(对于 sysams 表中的访问方法,值 = am_id。) |
amparam | LIST(VARCHAR(255)) | 用于定制 amid 访问方法行为的参数列表 |
collation | CHAR(32) | 创建索引时使用其整理顺序的数据库语言环境 |
pagesize | INTEGER | 存储此索引的页面的大小(以字节计) |
nhashcols | SMALLINT | FOT 索引中散列的列数 |
nbuckets | SMALLINT | 森林树 (FOT) 索引中子树(存储区)数 |
ustlowts | DATETIME YEAR TO FRACTION | 上次记录的索引统计信息的日期和时间 |
ustbuildduration | INTERVAL HOUR TO FRACTION(5) | 计算索引统计信息所需的时间 |
nupdates | FLOAT | 表的更新数 |
ndeletes | FLOAT | 表的删除数 |
ninserts | FLOAT | 表的插入数 |
fextsize | INT | 索引的第一个扩展数据块的大小 (KB) |
nextsize | INT | 索引的下一个扩展数据块的大小 (KB) |
只有在运行了 UPDATE STATISTICS 语句后,影响现有索引的更改才会在此系统目录表中反映出来。
indexkeys 列中的字段具有以下有效值:
procid(在 sysprocedures 中)仅为对表列定义的函数的返回值的函数索引存在。
第二个字段中列 (col1, col2, ... , coln) 的列表标识被定义索引的列。
最大值与语言相关:对于 SPL 或 Java(TM) UDR,最大为 341;对于 C UDR,最大为 102。
opclassid 标识数据库服务器用于构建和搜索索引的辅助访问方法。这与访问方法的 sysopclasses.opclassid 值相同。
对索引的分发统计信息最近一次重新计算以来,有关该索引的 sysindices 制表 DML 操作中 nupdates、ndeletes 和 ninserts 列的信息,请参阅在 SYSDISTRIB系统目录表中具有相同名称的三个列的描述。
fextsize 列显示可选 EXTENT SIZE 子句在定义索引的 CREATE INDEX 语句中所指定的、用户定义的第一个扩展数据块大小(以千字节计)。同样,nextsize 列显示可选 NEXT SIZE 子句在 CREATE INDEX 语句中所指定的、用户定义的下一个扩展数据块大小(以千字节计)。如果创建索引时省略了对应的 EXTENT SIZE 或 NEXT SIZE 子句,那么上述每个列会显示值零 (0)。
如果定义新索引的 CREATE INDEX 语句不包括任何显式扩展数据块大小规范,那么数据库服务器会自动计算第一个和下一个扩展数据块大小,但 fextsize 和 nextsize 列值会设置为 0。
建立了 tabid 列的索引并且此索引允许重复值。idxname、owner 和 tabid 列只允许唯一值。
SYSINHERITS
sysinherits 系统目录表存储有关表层次结构和命名 ROW 类型继承的信息。数据库中的每个超类型、子类型、超表和子表在 sysinherits 表中具有相应的行。
列 | 类型 | 解释 |
---|---|---|
child | INTEGER | 子表或子类型的标识代码 |
parent | INTEGER | 超表或超类型的标识代码 |
class | CHAR(1) | 继承类:t = 命名 ROW 类型 T = 表 |
child 和 parent 值都来自命名 ROW 类型的 sysxtdtypes.extended_id 或来自表的 systables.tabid。child 和 parent 列的简单索引允许重复值。
SYSLANGAUTH
syslangauth 系统目录表包含有关用于编写用户定义的例程 (UDR) 的计算机语言的权限信息。
表 20. SYSLANGAUTH 表列描述
列 | 类型 | 解释 |
---|---|---|
grantor | VARCHAR(32) | 语言权限授权者的名称 |
grantee | VARCHAR(32) | 语言权限被授权者的名称 |
langid | INTEGER | 标识 sysroutinelangs 表中的语言的代码 |
langauth | CHAR(1) | 语言权限:u = 授予 Usage 特权 U = 授予 Usage 特权 (WITH GRANT OPTION) |
langid、grantor 和 grantee 列的组合索引只允许唯一值。langid 和 grantee 列的组合索引允许重复值。
SYSLOGMAP
syslogmap 系统目录表包含分段存储信息。
表 21. SYSLOGMAP 表列描述
列 | 类型 | 解释 |
---|---|---|
tabloc | INTEGER | 表在其他数据库中位置的代码 |
tabid | INTEGER | 表的唯一标识代码 |
fragid | INTEGER | 分段的标识代码 |
flags | INTEGER | 分段声明中修饰符的位图 |
tabloc 列的简单索引以及 tabid 和 fragid 列的组合索引不允许重复值。
SYSOBJSTATE
sysobjstate 系统目录表存储有关数据库对象的状态(对象方式)的信息。列示在此表中的数据库对象的类型包括索引、触发器和约束。
数据库中的每个索引、触发器和约束在 sysobjstate 表中都有相应的行(如果用户创建该对象的话)。数据库服务器对系统目录表创建的索引不会列示在 sysobjstate 表中,原因是不能更改这些索引的对象方式。
sysobjstate 表具有以下列。
表 22. SYSOBJSTATE 表列描述
列 | 类型 | 解释 |
---|---|---|
objtype | CHAR(1) | 数据库对象类型的代码: C = 约束 I = 索引 T = 触发器 |
owner | VARCHAR(32) | 数据库对象所有者的权限标识 |
name | VARCHAR(128) | 数据库对象的名称 |
tabid | INTEGER | 对其定义对象的表的标识代码 |
state | CHAR(1) | 数据库对象的当前状态(对象方式)。这些值可以是以下某个代码: D = 禁用 E = 启用 F = 过滤,没有完整性违例错误 G = 过滤,有完整性违例错误 |
objtype、name、owner 和 tabid 列的组合索引仅允许这些值的唯一组合。tabid 列的简单索引允许重复值。
SYSOPCLASSES
sysopclasses 系统目录表包含有关与辅助访问方法相关联的运算符类的信息。它对已在数据库中定义的每个运算符类包含一行。sysopclasses 表具有以下列。
列 | 类型 | 解释 |
---|---|---|
opclassname | VARCHAR(128) | 运算符类的名称 |
owner | VARCHAR(32) | 运算符类所有者的名称 |
amid | INTEGER | 与此运算符类相关联的辅助访问方法的标识代码 |
opclassid | SERIAL | 运算符类的标识代码 |
ops | LVARCHAR | 属于此运算符类的运算符的名称列表 |
support | LVARCHAR | 对此运算符类定义的支持函数的名称列表 |
opclassid 值对应于 sysams.am_defopclass 值,该值为 amid 列指定的辅助访问方法指定缺省运算符类。
sysopclasses 表具有 opclassname 和 owner 列的组合索引和 opclassid 列的索引。两个索引都只允许唯一值。
SYSOPCLSTR
sysopclstr 系统目录表定义数据库中的每个光学集群。在该表中,每个光学集群对应一行。
sysopclstr 表具有以下列。
列 | 类型 | 解释 |
---|---|---|
owner | VARCHAR(32) | 光学集群所有者的名称 |
clstrname | VARCHAR(128) | 光学集群的名称 |
clstrsize | INTEGER | 光学集群的大小 |
tabid | INTEGER | 表的唯一标识代码 |
blobcol1 | SMALLINT | BYTE 或 TEXT 列号 1 |
blobcol2 | SMALLINT | BYTE 或 TEXT 列号 2 |
blobcol3 | SMALLINT | BYTE 或 TEXT 列号 3 |
blobcol4 | SMALLINT | BYTE 或 TEXT 列号 4 |
blobcol5 | SMALLINT | BYTE 或 TEXT 列号 5 |
blobcol6 | SMALLINT | BYTE 或 TEXT 列号 6 |
blobcol7 | SMALLINT | BYTE 或 TEXT 列号 7 |
blobcol8 | SMALLINT | BYTE 或 TEXT 列号 8 |
blobcol9 | SMALLINT | BYTE 或 TEXT 列号 9 |
blobcol10 | SMALLINT | BYTE 或 TEXT 列号 10 |
blobcol11 | SMALLINT | BYTE 或 TEXT 列号 11 |
blobcol12 | SMALLINT | BYTE 或 TEXT 列号 12 |
blobcol13 | SMALLINT | BYTE 或 TEXT 列号 13 |
blobcol14 | SMALLINT | BYTE 或 TEXT 列号 14 |
blobcol15 | SMALLINT | BYTE 或 TEXT 列号 15 |
blobcol16 | SMALLINT | BYTE 或 TEXT 列号 16 |
clstrkey1 | SMALLINT | 集群键号 1 |
clstrkey2 | SMALLINT | 集群键号 2 |
clstrkey3 | SMALLINT | 集群键号 3 |
clstrkey4 | SMALLINT | 集群键号 4 |
clstrkey5 | SMALLINT | 集群键号 5 |
clstrkey6 | SMALLINT | 集群键号 6 |
clstrkey7 | SMALLINT | 集群键号 7 |
clstrkey8 | SMALLINT | 集群键号 8 |
clstrkey9 | SMALLINT | 集群键号 9 |
clstrkey10 | SMALLINT | 集群键号 10 |
clstrkey11 | SMALLINT | 集群键号 11 |
clstrkey12 | SMALLINT | 集群键号 12 |
clstrkey13 | SMALLINT | 集群键号 13 |
clstrkey14 | SMALLINT | 集群键号 14 |
clstrkey15 | SMALLINT | 集群键号 15 |
clstrkey16 | SMALLINT | 集群键号 16 |
此表的内容对 CREATE OPTICAL CLUSTER、ALTER OPTICAL CLUSTER 和 DROP OPTICAL CLUSTER 语句敏感,这些语句已在支持光学集群子系统的数据库上执行。只有在运行 UPDATE STATISTICS 语句后,影响现有光学集群的更改才会在此表中反映出来。
clstrname 和 owner 列的组合索引只允许唯一值。tabid 列的简单索引允许重复值。
SYSPROCAUTH
sysprocauth 系统目录表描述对过程或函数授予的特权。它对授予的每一组特权包含一行。sysprocauth 表具有以下列。
表 23. SYSPROCAUTH 表列描述
列 | 类型 | 解释 |
---|---|---|
grantor | VARCHAR(32) | 访问例程的特权授权者的名称 |
grantee | VARCHAR(32) | 访问例程的特权被授权者的名称 |
procid | INTEGER | 例程的唯一标识代码 |
procauth | CHAR(1) | 授予对例程的特权的类型:e = 对例程的 Execute 特权 E = Execute 特权 (WITH GRANT OPTION) |
procid、grantor 和 grantee 列的组合索引只允许唯一值。procid 和 grantee 列的组合索引允许重复值。
SYSPROCBODY
sysprocbody 系统目录表描述数据库中每个过程或函数的已编译版本。因为 sysprocbody 表存储例程的文本,所以每个例程可以有多行。sysprocbody 表具有以下列。
表 24. SYSPROCBODY 表列描述
列 | 类型 | 解释 |
---|---|---|
procid | INTEGER | 例程的唯一标识代码 |
datakey | CHAR(1) | data 列中的信息的类型: A = 例程更改 SQL(在更新统计信息后不会更改该值) D = 例程用户文档文本E = 创建时间信息 L = 文字值(即,文字数字或带引号字符串) P = 解释器指令代码 (p-code) R = 例程返回值类型列表 S = 例程符号表 T = 例程文本创建 SQL |
seqno | INTEGER | 例程内的行号 |
data | CHAR(256) | 例程的实际文本 |
A 标志表示过程修饰符已更改。ALTER ROUTINE 语句仅更新修饰符而不是例程主体。UPDATE STATISTICS 更新查询计划而不是例程修饰符,并且数据键的值不会更改成 A 以外的值。A 标志标记所有已更改修饰符的过程和函数,包括超负荷的过程和函数。T 标志用于例程创建文本。
data 列包含实际数据,这些数据可以使用下列格式之一:
编码返回值列表
编码符号表
文字数据
例程的 P-code
例程的已编译代码
例程及其文档的文本
procid、datakey 和 seqno 列只允许唯一值。
SYSPROCCOLUMNS
sysproccolumns 系统目录表存储有关 SYSPROCEDURES 中所有 UDR 的返回类型和参数名称的信息。
此表中 procid 和 paramid 列的组合索引只允许唯一值。
表 25. SYSPROCCOLUMNS 表列描述
列 | 类型 | 解释 |
---|---|---|
procid | INTEGER | 例程的唯一标识代码 |
paramid | INTEGER | 参数的唯一识别代码 |
paramname | VARCHAR (IDENTSIZE) | 参数的名称 |
paramtype | SMALLINT | 标识参数的类型 |
paramlen | SMALLINT | 指定参数的长度 |
pxid | INTEGER | 指定参数的扩展类型标识 |
paramattr | INTEGER | 0 = 参数是未知类型 1 = 参数处于 INPUT 方式 2 = 参数处于 INOUT 方式 3 = 参数是多个返回值 4 = 参数处于 OUT 方式 5 = 参数是一个返回值 |
SYSPROCEDURES
sysprocedures 系统目录表列出了数据库中注册的每个函数、过程和包的特征。
sysprocedures 中的每个函数具有唯一值 procid,称为例程标识符。在整个系统目录中,函数由其例程标识符而不是其名称标识。
sysprocedures 表具有以下列。
表 26. SYSPROCEDURES 表列描述
列 | 类型 | 解释 |
---|---|---|
procname | VARCHAR(128) | 例程的名称 |
owner | VARCHAR(32) | 所有者的名称 |
procid | SERIAL | 例程的唯一标识代码 |
mode | CHAR(1) | 方式类型: D 或 d = DBA O 或 o = 所有者 P 或 p = 受保护 R 或 r = 受限制 T 或 t = 触发器 |
retsize | INTEGER | 返回值的已编译大小(以字节计) |
symsize | INTEGER | 符号表的已编译大小(以字节计) |
datasize | INTEGER | 常量数据的已编译大小(以字节计) |
codesize | INTEGER | 例程代码的已编译大小(以字节计) |
numargs | INTEGER | 例程的自变量数 |
isproc | CHAR(1) | 指定例程是过程还是函数: t = 过程 f = 函数 |
specificname | VARCHAR(128) | 指定例程的名称 |
externalname | VARCHAR(255) | 外部例程的位置。此项在内容和格式上都是特定于语言的。 |
paramstyle | CHAR(1) | 参数样式:I = GBase 8s |
langid | INTEGER | 语言代码(在 sysroutinelangs 表中) |
paramtypes | RTNPARAMTYPES | 描述例程参数的信息 |
variant | BOOLEAN | 例程是否是 VARIANT: t = 是 VARIANT f = 不是 VARIANT |
client | BOOLEAN | 保留供将来使用 |
handlesnulls | BOOLEAN | NULL 处理指示符: t = 处理 NULL f = 不处理 NULL |
percallcost | INTEGER | 每个调用的 CPU 量 执行 UDR 的整数成本:成本 / 调用 - 0 -(2^31-1) |
commutator | VARCHAR(128) | 换向函数的名称 |
negator | VARCHAR(128) | 否定函数的名称 |
selfunc | VARCHAR(128) | 用于估计 UDR 的选择性的函数的名称 |
internal | BOOLEAN | 指定是否可以从 SQL 调用例程:t = 例程是内部的,不能从 SQL 调用 f = 例程是外部的,可以从 SQL 调用 |
class | CHAR(18) | 执行例程应依据的 CPU 类 |
stack | INTEGER | 每个调用所需的堆栈大小(以字节计) |
parallelizable | BOOLEAN | UDR 的并行化指示符:t = 可并行化 f = 不可并行化 |
costfunc | VARCHAR(128) | UDR 的成本函数的名称 |
selconst | SMALLFLOAT | UDR 的选择性常量 |
flags | INTEGER | 仅供内部使用 |
type | SMALLINT | 代表当前行的含义。具体如下: 1: package specification; 2: package body; 3: 包中方法的声明; 4: 包中方法的定义; 0: 原有的存储过程。 |
belongid | INTEGER | 对于包中方法的声明和包中方法的定义而言,belongid是对应包的procid |
在 mode 列中,R 方式是 O 方式的特殊情况。如果例程是以不同于例程创建者的指定所有者创建的,那么例程处于受限 (R) 方式。如果执行了涉及远程数据库的例程语句,那么数据库服务器使用执行例程的用户的访问特权而不是例程所有者的特权。在所有其他情况下,R 方式例程与 O 方式例程行为相同。
数据库服务器可以创建受保护的例程供内部使用。sysprocedures 表在 mode 列中用字母 P 或 p 标识这些受保护的例程,其中 p 指示 SPL 例程。受保护例程具有以下限制:
您无法使用 ALTER FUNCTION、ALTER PROCEDURE 或 ALTER ROUTINE 语句修改受保护的例程。
您无法使用 DROP FUNCTION、DROP PROCEDURE 或 DROP ROUTINE 语句注销受保护的例程。
您无法使用 dbschema 实用程序显示受保护的例程。
在较早的版本中,受保护的 SPL 例程用小写 p 指示。从 V9.0 开始,受保护的 SPL 例程将被视为 DBA 例程,而不能是所有者例程。因此,D 和 O 表示 DBA 例程和所有者例程,而 d 和 o 表示受保护的 DBA 例程和受保护的所有者例程。
触发器方式指定用户定义的 SPL 例程,只能从触发操作的 FOR EACH ROW 部分调用该例程。
在发出 SET SESSION AUTHORIZATION 语句后,数据库服务器为所有使用新标识时创建的所有者例程指定限制方式。
唯一索引定义于 procid 列。procname、isproc、numargs 和 owner 列的组合索引允许重复值,specificname 和 owner 列的组合索引也允许重复值。
SYSPROCPLAN
sysprocplan 系统目录表描述每个例程内的数据操作语句的查询执行方案和依赖性列表。由于可以在不同的日期创建例程方案的不同部分,所以此表可以包含每个例程的多个行。
表 27. SYSPROCPLAN 表列描述
列 | 类型 | 解释 |
---|---|---|
procid | INTEGER | 例程的标识代码 |
planid | INTEGER | 计划的标识代码 |
datakey | CHAR(1) | data 列中存储的信息的类型:D = 依赖性列表 I = 信息记录 Q = 执行计划 |
seqno | INTEGER | 方案内的行号 |
created | DATE | 创建方案的日期 |
datasize | INTEGER | 列表或方案的大小(以字节计) |
data | CHAR(256) | 已编码(编译)的列表或计划 |
collation | CHAR(32) | 创建例程时的排列顺序 |
在运行例程之前,会检查 data 列中例程的依赖性列表。如果方案存取的表的主版本号已更改,或者如果例程使用的任何对象自从优化方案以来已被修改(例如:如果已删除索引),那么会再次优化方案。当 datakey 为 I 时,data 列存储有关 UPDATE STATISTICS 和 PDQPRIORITY 的信息。
可通过对 sysprocplan 使用 DELETE 语句来删除给定例程的所有方案。当后来执行例程时,新的方案就会自动生成并记录在 sysprocplan 中。UPDATE STATISTICS FOR PROCEDURE 语句也会更新此表。
procid、planid、datakey 和 seqno 列的组合索引只允许唯一值。
SYSREFERENCES
sysreferences 系统目录表列出了各列的所有引用约束。它对数据库中的每个引用约束包含一行。
表 28. SYSREFERENCES 表列描述
列 | 类型 | 解释 |
---|---|---|
constrid | INTEGER | 唯一地标识约束的代码 |
主 | INTEGER | 相应主键的标识代码 |
ptabid | INTEGER | 作为主键的表的标识代码 |
updrule | CHAR(1) | 保留供将来使用;显示 R |
delrule | CHAR(1) | 约束使用级联删除还是限制规则:C = 级联删除 R = 限制(缺省值) |
matchtype | CHAR(1) | 保留供将来使用;显示 N |
pendant | CHAR(1) | 保留供将来使用;显示 N |
建立了 constrid 列的索引并且此索引只允许唯一值。建立了 primary 列的索引并且此索引允许重复值。
SYSROLEAUTH
sysroleauth 系统目录表描述授予用户的角色。它对在数据库中授予用户的每个角色包含一行。sysroleauth 表具有以下列。
表 29. SYSROLEAUTH 表列描述
列 | 类型 | 解释 |
---|---|---|
rolename | VARCHAR(32) | 角色的名称 |
grantee | VARCHAR(32) | 角色被授权者的名称 |
is_grantable | CHAR(1) | 指定角色是否可授予:Y = 可授予 N = 不可授予 |
is_grantable 列指示该角色是否是使用 GRANT 语句的 WITH GRANT OPTION 授予的。
rolename 和 grantee 列的组合索引只允许唯一值。
SYSROUTINELANGS
sysroutinelangs 系统目录表列出了用户定义的例程 (UDR) 的受支持编程语言。它具有以下列。
列 | 类型 | 解释 |
---|---|---|
langid | SERIAL | 唯一地标识受支持语言的代码 |
langname | CHAR(30) | 语句的名称,例如:C 或 SPL |
langinitfunc | VARCHAR(128) | 语言的初始化函数的名称 |
langpath | CHAR(255) | UDR 语言的目录路径 |
langclass | CHAR(18) | UDR 语言的类的名称 |
langname 列的索引允许重复值。
SYSSECLABELAUTH
sysseclabelauth 系统目录表记录已授予用户的 LBAC 标号。它具有以下列。
列 | 类型 | 解释 |
---|---|---|
GRANTEE | CHAR(32) | 被授予标号者的名称 |
secpolicyid | INTEGER | 安全标号所属的安全策略的标识 |
readseclabelid | INTEGER | 已被授予读访问权的安全标号的标识 |
writeseclabelid | INTEGER | 已授予写访问权的安全标号的标识 |
SYSSECLABELCOMPONENTS
sysseclabelcomponents 系统目录表记录安全标号组件。它具有以下列。
列 | 类型 | 解释 |
---|---|---|
compname | VARCHAR(128) | 组件名称 |
compid | SERIAL | 组件标识 |
comptype | CHAR(1) | 组件类型:A = 数组 S = 集 T = 树 |
numelements | INTEGER | 组件中的元素数量 |
coveringinfo | VARCHAR(128) | 内部编码信息 |
numalters | SMALLINT | 在组件上已执行的变更操作数量 |
SYSSECLABELCOMPONENTELEMENTS
sysseclabelcomponentelements 系统目录表记录安全标号的组件元素的值。它具有以下列。
列 | 类型 | 解释 |
---|---|---|
compid | INTEGER | 组件标识 |
元素 (element) | VARCHAR(32) | 元素名称 |
elementencoding | CHAR(8) | 元素的编码格式 |
parentelement | VARCHAR(32) | 树组件的父元素的名称。对于以下项,值为 NUll: 集组件 数组组件 树组件的根节点 |
alterversion | SMALLINT | 在添加元素时变更操作的数量。 此值由 dbexport 和 dbimport 命令使用。 |
2.48 SYSSECLABELNAMES
sysseclabelnames 系统目录表记录安全标号名称。它具有以下列。
列 | 类型 | 解释 |
---|---|---|
secpolicyid | INTEGER | 安全标号所属的安全策略的标识 |
seclabelname | VARCHAR(128) | 安全标号名称 |
seclabelid | INTEGER | 安全标号的标识 |
SYSSECLABELS
sysseclabels 系统目录表记录安全标号编码。它具有以下列。
列 | 类型 | 解释 |
---|---|---|
secpolicyid | INTEGER | 安全标号所属的安全策略的标识 |
seclabelid | INTEGER | 安全标号标识 |
sysseclabelnames | VARCHAR(128) | 安全标号编码 |
SYSSECPOLICIES
syssecpolicies 系统目录表记录它具有的这些列的安全策略。
列 | 类型 | 解释 |
---|---|---|
secpolicyname | VARCHAR(128) | 安全策略名称 |
secpolicyid | SERIAL | 安全策略标识 |
numcomps | SMALLINT | 安全策略中的安全标号组件的数量 |
comptypelist | CHAR(16) | 策略中每个组件类型的排序列表。A = 数组 S = 集 T = 树 – = 超越 NUMCOMPS |
overrideseclabel | CHAR(1) | 在用户的安全标号和豁免凭证不允许其以标号提供的对 INSERT 或 UPDATE SQL 语句的安全性来插入或更新数据行时,指示该行为。 Y:提供的安全标号被忽略并由用户写访问权的安全标号所取代。 N:在未得到授权以编写安全标号时返回一个错误。 |
SYSSECPOLICYCOMPONENTS
syssecpolicycomponents 系统目录表记录每个安全策略的组件。它具有以下列。
列 | 类型 | 解释 |
---|---|---|
secpolicyid | INTEGER | 安全策略标识 |
compid | INTEGER | 标号安全策略的组件标识 |
compno | SMALLINT | 安全标号组件在安全策略中存在的位置,从第 1 个位置开始。 |
SYSSECPOLICYEXEMPTIONS
syssecpolicyexemptions 系统目录表记录已经授予用户的豁免权。它具有以下列。
列 | 类型 | 解释 |
---|---|---|
grantee | CHAR(32) | 具有此豁免权的用户 |
secpolicyid | INTEGER | 授予豁免权的策略标识 |
豁免权 | CHAR(6) | 授予在 GRANTEE 列中标识的用户的豁免权。这六个字符具有以下含义: 1 = 读数组 2 = 读集 3 = 读树 4 = 写数组 5 = 写集 6 = 写树 每个字符具有以下某个值: E = 豁免 D = 减记豁免 U = 增记豁免 – = 无豁免 |
SYSSEQUENCES
syssequences 系统目录表列出了数据库中存在的序列对象。syssequences 表具有以下列。
列 | 类型 | 解释 |
---|---|---|
seqid | SERIAL | 唯一地标识序列对象的代码 |
tabid | INTEGER | 作为表对象的序列的标识代码 |
start_val | INT8 | 序列的开始值 |
inc_val | INT8 | 连续值之间的增量的值 |
max_val | INT8 | 序列的最大可能值 |
min_val | INT8 | 序列的最小可能值 |
cycle | CHAR(1) | 零表示 NOCYCLE,1 表示 CYCLE |
cache | INTEGER | 在序列高速缓存中预先分配的值的数目 |
order | CHAR(1) | 零表示 NOORDER,1 表示 ORDER |
SYSSURROGATEAUTH
syssurrogateauth 系统目录表会存储可信用户和代理用户信息。
运行 GRANT SETSESSIONAUTH 语句时会填充 syssurrogateauth 系统目录表。TO 子句中指定的用户或角色将添加到 trusteduser 列中。ON 子句中指定的用户将添加到 surrogateuser 列中。
例如,考虑如下语句:
GRANT SETSESSIONAUTH ON bill, john TO mary, peter;
syssurrogateauth 表中的条目将按如下所示创建:
trusteduser surrogateuser
mary bill
mary john
peter bill
peter john
syssurrogateauth 表具有以下列。
表 30. SYSSURROGATEAUTH 表列描述
列 | 类型 | 解释 |
---|---|---|
trusteduser | CHAR(32) | 可信用户名或角色。 |
surrogateuser | CHAR(32) | 代理用户名。 |
SYSSYNONYMS
syssynonyms 系统目录表未在使用。 syssyntable 表描述同义词。syssynonyms 系统目录表具有以下列。
表 31. SYSSYNONYMS 表列描述
列 | 类型 | 解释 |
---|---|---|
owner | VARCHAR(32) | 同义词所有者的名称 |
synname | VARCHAR(128) | 同义词的名称 |
created | DATE | 创建同义词时的日期 |
tabid | INTEGER | 标识表、序列或视图的代码 |
owner 和 synonym 列的组合索引只允许唯一值。建立了 tabid 列的索引并且此索引允许重复值。
SYSSYNTABLE
syssyntable 系统目录表概述了每个公共或专用同义词与它表示的数据库对象(表、序列或视图)之间的映射。它为 systables 表中 tabtype 值为 P 或 S 的每个条目包含一行。 syssyntable 表具有以下列。
列 | 类型 | 解释 |
---|---|---|
tabid | INTEGER | 标识公共同义词的代码 |
servername | VARCHAR(128) | 外部数据库服务器的名称 |
dbname | VARCHAR(128) | 外部数据库的名称 |
owner | VARCHAR(32) | 外部对象的所有者的名称 |
tabname | VARCHAR(128) | 外部表或视图的名称 |
btabid | INTEGER | 基本表、序列或视图的标识代码 |
符合 ANSI 标准的数据库不支持公共同义词,它们的 syssyntable 表只能描述 syssyntable.tabtype 值为 P 的同义词。
如果为当前数据库中的对象定义同义词,那么只能使用 tabid 和 btabid 列。如果为当前数据库外部的表定义同义词,那么不使用 btabid 列,而是使用 tabid、servername、dbname、owner 和 tabname 列。
tabid 列映射至 systables.tabid。借助 tabid 信息,可以确定有关 systables 中的同义词的其他方面。
tabid 列的索引只允许唯一值。btabid 列的索引建立为允许重复值。
SYSTABAMDATA
systabamdata 系统目录表存储使用主访问方法创建的表的特定于表的散列参数。
systabamdata 表具有以下列。
表 32. SYSTABAMDATA 表列描述
列 | 类型 | 解释 |
---|---|---|
tabid | INTEGER | 表的标识代码 |
am_param | CHAR(256)LVARCHAR(8192) | 访问方法参数选项 |
am_space | VARCHAR(128) | 保存数据值的存储空间的名称 |
am_param 列存储确定主要访问方法如何访问给定表的配置参数。am_param 列表中的每个配置参数都具有 keyword=value 或 keyword 格式。
am_space 列指定表的位置。它可能在数据库服务器内的熟文件、另一个数据库或智能大对象空间中。
tabid 列是 systables 表的主键。此列具有索引并且必须包含唯一值。
SYSTABAUTH
systabauth 系统目录表描述对表、视图、序列或同义词授予的每一组特权。它对在数据库中授予的每一组表特权包含一行;REVOKE 语句可以修改行。systabauth 表具有以下列。
表 33. SYSTABAUTH 表列描述
列 | 类型 | 解释 |
---|---|---|
grantor | VARCHAR(32) | 特权授权者的名称 |
grantee | VARCHAR(32) | 特权被授权者的名称 |
tabid | INTEGER | 数据库对象的 systables.tabid 中的值 |
tabauth | CHAR(9) CHAR(8) | 指定对表、视图、同义词或序列上的特权的模式: s 或 S = Select u 或 U = Update * = 列级别特权 i 或 I = Insert d 或 D = Delete x 或 X = Index a 或 A = Alter r 或 R = References n 或 N = Under 特权 |
如果 tabauth 列显示大写的特权代码(例如:S 表示选择),那么这指示用户还可以选择将该特权授予他人。用小写列示的特权代码(例如:s 表示选择)指示用户具有指定的特权,但不能将该特权授予他人。
连字符 (-) 指示 tabauth 模式内该位置缺少对应的特权。
带星号 (*) 的 tabauth 值意味着存在列级别特权;另请参阅 syscolauth。(在 DB-Access 中,指定表的 Info 命令的 Privileges 选项可以显示对该表的列级别特权。)
tabid、grantor 和 grantee 的组合索引只允许唯一值。tabid 和 grantee 的组合索引允许重复值。
SYSTABLES
systables 系统目录表对在数据库(包括系统目录的表和视图)中定义的每个表对象(表、视图、同义词或 GBase 8s 中的序列)包含一行。
表 34. SYSTABLES 表列描述
列 | 类型 | 解释 |
---|---|---|
tabname | VARCHAR(128) | 表、视图、同义词或序列的名称 |
owner | CHAR(32) | 表的所有者(系统目录表的用户 gbasedbt 和数据库表的 username) |
partnum | INTEGER | 物理存储位置代码 |
tabid | SERIAL | 系统指定的顺序标识编号 |
rowsize | SMALLINT | 最大行大小,以字节计 (≤ 40 MB) |
ncols | SMALLINT | 表中的列数 |
nindexes | SMALLINT | 表的索引数 |
nrows | FLOAT | 表中的行数 |
created | DATE | 创建或上次修改表时的日期 |
version | INTEGER | 改变表时更改的数字 |
tabtype | CHAR(1) | 指示表对象类型的代码: T = 表 E = 外部表 V = 视图 Q = 序列 P = 专用同义词 S = 公共同义词 (类型 S 在符合 ANSI 标准的数据库中不可用。) |
locklevel | CHAR(1) | 表的锁定方式: B = 页面和行级别 P = 页面级别 R = 行级别 |
npused | FLOAT | 数据库服务器曾经在 tablespace 中启动过的数据页数 |
fextsize | INTEGER | 初始扩展数据块的大小 (KB) |
nextsize | INTEGER | 所有后续扩展数据块的大小 (KB) |
flags | SMALLINT | 用于对永久表分类的代码: ROWID 1 - 已定义行标识列 UNDER 2 - 在超表之下创建的表 VIEWREMOTE 4 - 视图基于远程表 CDR 8 - 已定义 CDRCOLS RAW 16 - (GBase 8s) RAW 表 EXTERNAL 32- 外部表 AUDIT 64 - 审计表属性 - FGA AQT 128 - 视图是用于卸载 DWA 的 AQT VIRTAQT 256 - 视图是虚拟 AQT GLOBAL TEMPORARY 4096-全局临时表 8192-事务临时表 |
site | VARCHAR(128) | 保留供将来使用 |
dbname | VARCHAR(128) | 保留供将来使用 |
type_xid | INTEGER | sysxtdtypes.extended_id 中的代码(对于类型表),或者 0(对于无类型表) |
am_id | INTEGER | 访问方法代码(sysams 表的关键字) NULL 或 0 表示内置存储管理器 |
ustlowts | DATETIME YEAR TO FRACTION (5) | 上次记录表、行和页计数统计信息的时间 |
secpolicyid | INTEGER | 已与表连接的安全策略的标识。 NULL 表示不受保护的表 |
protgranularity | CHAR(1) | LBAC 粒度级别: R:行级别粒度 C:列级别粒度 B:行和列的粒度 “空白”表示不受保护的表 |
statlevel | CHAR(1) | 统计信息级别 T = 表 F = 分段 A = 自动 |
statchange | SMALLINT | 仅供内部使用 |
为 systables 表中记录的每个表、视图、序列和同义词指定 tabid,它是系统指定的、唯一标识该对象的 SERIAL 值。保留前 999 个 tabid 值用于系统目录。数据库中第一个用户定义的表对象的 tabid 始终为 1000。
对 tabid 列建立了索引,且该列只包含唯一值。tabname 和 owner 列的组合索引也需要唯一值。
version 列包含创建新表时存储在 systables 中的已编码数字。当对表执行数据定义的语句(例如,ALTER INDEX、ALTER TABLE、DROP INDEX 和 CREATE INDEX)时,此值的一部分会增大。
在 flags 列中,ST_RAW 表示支持事务日志记录的数据库中的非日志记录永久表。
SQL_LOGICAL_CHAR 参数的设置会编码到描述 VERSION 表的行中的 systables.flags 列值。注意此由系统生成的表的标识中有一个前导空格。
要确定数据库是否启用可将逻辑字符语义应用到字符列声明的 SQL_LOGICAL_CHAR 配置参数,您可以执行以下查询:
SELECT flags INTO $value FROM 'gbasedbt'.systables WHERE tabname = ' VERSION';
由于 SQL_LOGICAL_CHAR 设置以“VERSION.flags”值的两个最不重要数位编码,因此您可以依据以下公式从返回的 flags 值计算其设置:
SQL_LOGICAL_CHAR = (value & 0x03) + 1此处的 & 是位 AND 运算符。任何大于 1 的 SQL_LOGICAL_CHAR 设置表示创建数据库时已启用 SQL_LOGICAL_CHAR,且字符列的显式或缺省最大大小规范将乘以该设置。
当执行引用数据库表的预编译语句时,会检查版本值以确保自预编译语句以来没有进行任何更改。如果修改了表模式的 DDL 操作更改了版本值并且 SET ENVIRONMENT 语句的 IFX_AUTO_REPREPARE 设置已禁用了自动重新编译,那么不会执行预编译语句,并且必须再次预编译该语句。
npused 列既不反映用于 BYTE 或 TEXT 数据的页数,也不反映 DELETE 或 TRUNCATE 操作中释放的页数。
nrows 列和 npused 列可能无法准确反映由外部表使用的行数和数据页数,除非在创建外部表时指定了 NUMROWS 子句。请参阅《GBase 8s 管理员指南》以获取更多信息。
systables 表有两行用来存储有关数据库语言环境的信息:GL_COLLATE(其 tabid 为 90)和 GL_CTYPE(其 tabid 为 91)。要查看这些行,请输入以下 SELECT 语句:
SELECT * FROM systables WHERE tabid=90 OR tabid=91;
SYSTRACECLASSES
systraceclasses 系统目录表包含跟踪类的名称和标识符。systraceclasses 具有以下列。
表 35. SYSTRACECLASSES 表列描述
列 | 类型 | 解释 |
---|---|---|
name | CHAR(18) | 跟踪消息的类的名称 |
classid | SERIAL | 跟踪类的标识代码 |
跟踪类是可以在开发和测试新的 DataBlade 模块和用户定义的例程过程中使用的跟踪消息类别。开发者可以通过在其代码中调用适当的 DataBlade API 例程来使用跟踪设施。
要创建新的跟踪类,将一行直接插入 systraceclasses表中。缺省情况下,所有用户都可以查看此表,但只有具有 DBA 特权的用户才能对其进行修改。
除非没有定义 MITRACE_OFF 配置参数,否则数据库不支持跟踪。
name 列的唯一索引要求每个跟踪类都具有唯一名称。数据库服务器为每个类指定唯一顺序代码。此 classid 列的索引也只允许唯一值。
SYSTRACEMSGS
systracemsgs 系统目录表存储可在调试用户定义的例程时使用的国际化跟踪消息。
systracemsgs 表具有以下列。
表 36. SYSTRACEMSGS 表列描述
列 | 类型 | 解释 |
---|---|---|
name | VARCHAR(128) | 消息的名称 |
msgid | SERIAL | 消息模板的标识代码 |
locale | CHAR(36) | 与此版本的消息相关联的语言环境(例如:en_us.8859-1) |
seqno | SMALLINT | 保留供将来使用 |
message | VARCHAR(255) | 消息文本 |
DataBlade 模块开发者通过将一行直接插入 systracemsgs 表来创建跟踪消息。创建了消息后,开发团队就可以使用 DataBlade API 提供的跟踪除非没有定义 MITRACE_OFF 配置参数,否则数据库不支持跟踪。
语句按名称或 msgid 代码指定该消息。
要创建跟踪消息,必须指定消息的名称、语言环境和文本。缺省情况下,所有用户都可以查看 systracemsgs 表,但只有具有 DBA 特权的用户才能对其进行修改。
对 name 和 locale 列定义了唯一组合索引。对 msgid 列定义了其他唯一索引。
SYSTRIGBODY
systrigbody 系统目录表包含触发器定义的 ASCII 文本和触发器的线性化代码。线性化代码是以 ASCII 格式表示的二进制数据和代码。
要点: 数据库服务器使用存储在 systrigbody 中的线性化代码。一定不要改变包含线性化代码的行的内容。
systrigbody 表具有以下列。
表 37. SYSTRIGBODY 表列描述
列 | 类型 | 解释 |
---|---|---|
trigid | INTEGER | 触发器的标识代码 |
datakey | CHAR(1) | 指定数据类型的代码:A = 主体(触发操作)的 ASCII 文本 B = 主体的线性化代码 D = 页眉(触发器定义)的英文文本 H = 页眉的线性化代码S = 符号表的线性化代码 |
seqno | INTEGER | 此数据段的页号 |
data | CHAR(256) | 英文文本或线性化代码 |
collation | CHAR(32) | 创建触发器时的排列顺序 |
trigid、datakey 和 seqno 列的组合索引只允许唯一值。
SYSTRIGGERS
systriggers 系统目录表包含有关数据库中 SQL 触发器的信息。此信息包括触发事件和触发器的相关引用规范。systriggers 表具有以下列。
表 38. SYSTRIGGERS 表列描述
列 | 类型 | 解释 |
---|---|---|
trigid | SERIAL | 触发器的标识代码 |
trigname | VARCHAR(128) | 触发器的名称 |
owner | VARCHAR(32) | 触发器所有者的名称 |
tabid | INTEGER | 触发表的标识代码 |
event | CHAR(1) | 触发事件类型的代码:D = 删除触发器 I = 插入触发器 U = 更新触发器 S = 选择触发器 d = INSTEAD OF 删除触发器 i = INSTEAD OF 插入触发器 u = INSTEAD OF 更新触发器 |
old | VARCHAR(128) | 更新之前值的名称 |
new | VARCHAR(128) | 更新之后值的名称 |
mode | CHAR(1) | 保留供将来使用 |
trigname 和 owner 列的组合索引只允许唯一值。trigid 列的索引也需要唯一值。tabid 列的索引允许重复值。
SYSUSERS
sysusers 系统目录表列出每单个用户的权限标识,或列出拥有数据库级别访问特权的 PUBLIC 组的公共权限标识。此表还会列出拥有数据库中任何对象访问特权的每个角色的名称。
此系统目录表具有以下列:
表 39. SYSUSERS 表列描述
列 | 类型 | 解释 |
---|---|---|
username | VARCHAR(32) | 数据库用户或角色的名称。 username 的索引只允许唯一值。username 值可以是用户的登录名或角色的名称。 |
usertype | CHAR(1) | 指定 username 所拥有最高数据库级别特权的代码,其中 username 是单个用户、PUBLIC 组或角色名称。有效代码是:D = DBA(所有特权) R = 资源(创建 UDR、UDT、永久表和索引)C = 连接(使用现有表)G = 角色 U = 缺省角色。为用户指定缺省角色时,会将数据库的隐式连接授予用户。这是用户在被授予 C、D 或 R 角色之前的角色。 |
priority | SMALLINT | 保留供将来使用。 |
password | CHAR(16) | 保留供将来使用。 |
defrole | VARCHAR(32) | 缺省角色的名称。 |
SYSVIEWS
sysviews 系统目录表描述数据库中的每个视图。因为它存储创建视图的 SELECT 语句,所以对于每个视图,sysviews 可包含多行。它具有以下列。
列 | 类型 | 解释 |
---|---|---|
tabid | INTEGER | 视图的标识代码 |
seqno | SMALLINT | SELECT 语句的行号 |
viewtext | CHAR(64) | 用于创建视图的实际 SELECT 语句 |
tabid 和 seqno 列的组合索引只允许唯一值。
SYSVIOLATIONS
sysviolations 系统目录表存储有关基本表的约束违例的信息。
此表会在 DELETE、INSERT、MERGE 或 UPDATE 语句检测到以下违例时进行更新:在 SQL 的 START VIOLATIONS TABLE 语句已为其创建关联违例表(对于 GBase 8s,还创建了诊断表)的数据库表中,违反了启用的约束或唯一索引。对于具有活动违例表的每个基本表,sysviolations 表都有对应的行,同时具有以下各列。
列 | 类型 | 解释 |
---|---|---|
targettid | INTEGER | 目标表(对其定义违例表和诊断表的基本表)的标识代码 |
viotid | INTEGER | 违例表的标识代码 |
diatid | INTEGER | 诊断表的标识代码 |
maxrows | INTEGER | 在其中已定义过滤方式对象的目标表上,通过单一插入、更新或删除操作可插入诊断表中的最大行数。 |
maxrows 列还表示在启用已禁用的对象或将禁用的对象设置为过滤方式的单个操作期间可插入到诊断表中的最大行数(前提是该目标表存在诊断表)。如果没有为诊断或违例表指定最大值,那么 maxrows 包含 NULL 值。
此表的主键是 targettid 列。还对 viotid 列定义了附加唯一索引。
GBase 8s 还具有 diatid 列的唯一索引。
SYSXADATASOURCES
sysxadatasources 系统目录表存储 XA 数据源。
sysxadatasources 表具有以下列。
列 | 类型 | 解释 |
---|---|---|
xa_datasrc_owner | CHAR(32) | XA 数据源所有者的用户标识 |
xa_datasrc_name | VARCHAR(128) | XA 数据源的名称 |
xa_datasrc_rmid | SERIAL | XA 数据源的唯一 RMID |
xa_source_typeid | INTEGER | XA 数据源类型标识 |
SYSXASOURCETYPES
sysxasourcetypes 系统目录表存储 XA 数据源类型。sysxasourcetypes 表具有以下列。
列 | 类型 | 解释 |
---|---|---|
xa_source_typeid | SERIAL | 源类型的唯一标识 |
xa_source_owner | CHAR(32) | 所有者的用户标识 |
xa_source_name | VARCHAR(128) | 源类型名称 |
xa_flags | INTEGER | |
xa_version | INTEGER | |
xa_open | INTEGER | xa_open_entry 的 UDR 标识 |
xa_close | INTEGER | xa_close_entry 的 UDR 标识 |
xa_end | INTEGER | xa_end_entry 的 UDR 标识 |
xa_rollback | INTEGER | xa_rollback_entry 的 UDR 标识 |
xa_prepare | INTEGER | xa_prepare_entry 的 UDR 标识 |
xa_commit | INTEGER | xa_commit_entry 的 UDR 标识 |
xa_recover | INTEGER | xa_recover_entry 的 UDR 标识 |
xa_forget | INTEGER | xa_forget_entry 的 UDR 标识 |
xa_complete | INTEGER | xa_complete_entry 的 UDR 标识 |
SYSXTDDESC
sysxtddesc 系统目录表提供了在数据库中定义的每个用户定义的数据类型 (UDT) 的文本描述。sysxtddesc 表具有以下列。
列 | 类型 | 解释 |
---|---|---|
extended_id | INTEGER | 唯一地标识扩展数据类型的代码 |
seqno | SMALLINT | 要对 UDT 描述的一行进行排序和标识的值 仅当剩余的文本字符串大于 255 个字节时才会创建新的行。 |
description | CHAR(256) | 扩展数据类型的文本描述 |
extended_id 和 seqno 的组合索引允许重复值。
SYSXTDTYPEAUTH
sysxtdtypeauth 系统目录表标识每个 UDT(用户定义的数据类型)上的特权。
sysxtdtypeauth 表对授予的每组特权包含一行,且具有以下列:
列 | 类型 | 解释 |
---|---|---|
grantor | VARCHAR(32) | 特权授权者的名称 |
grantee | VARCHAR(32) | 特权被授权者的名称 |
type | INTEGER | 标识 UDT 的代码 |
auth | CHAR(2) | 标识针对 UDT 的特权的代码:n 或 N = Under 特权 u 或 U = Usage 特权 |
如果 auth 列中的特权代码是大写的(例如,“U”表示使用),那么具有此特权的用户还可以将此特权授予他人。如果代码是小写的,那么具有该特权的用户不能将此特权授予他人。
type、grantor 和 grantee 的组合索引只允许唯一值。type 和 grantee 列的组合索引允许重复值。
SYSXTDTYPES
在 sysxtdtypes 系统目录表中,在数据库中定义的每个 UDT(用户定义的数据类型)对应一个条目,这些类型包括不透明和单值数据类型以及复杂数据类型(命名 ROW 类型、未命名 ROW 类型和 COLLECTION 类型)。
sysxtdtypes 表具有以下列。
表 40. SYSXTDTYPES 表列描述
列 | 类型 | 解释 |
---|---|---|
extended_id | SERIAL | 扩展数据类型的唯一标识代码 |
domain | CHAR(1) | UDT 的域的代码 |
mode | CHAR(1) | 对 UDT 进行分类的代码: B = 基本(不透明)类型 C = 集合类型或未命名 ROW 类型 D = 单值类型 R = 命名 ROW 类型 ' '(空白)= 内置类型 |
owner | VARCHAR(32) | UDT 所有者的名称 |
name | VARCHAR(128) | UDT 的名称 |
type | SMALLINT | 对 UDT 分类的代码 |
source | INTEGER | sysxtdtypes 引用(仅适用于单值类型) 零 (0) 指示从内置数据类型创建了单值 UDT。 |
maxlen | INTEGER | 可变长度数据类型的最大长度 零指示固定长度 UDT。 |
length | INTEGER | 固定长度数据类型的长度(以字节计) 零指示可变长度 UDT。 |
byvalue | CHAR(1) | “T”= UDT 通过值传递 “F”= UDT 不通过值传递 |
cannothash | CHAR(1) | “T”= UDT 可通过缺省散列函数散列 “F”= UDT 不可通过缺省函数散列 |
align | SMALLINT | 此 UDT 的对齐方式(= 1、2、4 或 8) |
locator | INTEGER | 未命名 ROW 类型的定位器键 |
pkg | VARCHAR(128) | 定义该类型的包名 |
每个扩展数据类型都用唯一标识符(称为扩展标识符 (extended_id))、数据标识符 (type) 以及长度和数据库类型的描述来作为特征。
对于使用内置数据类型创建的单值类型,type 列代码对应于 SYSCOLUMNS 中列出的 syscolumns.coltype 列(指示源类型)的值,但要加上一个十六进制值 0x0000800。 文件 $GBASEDBTDIR/incl/esql/sqltypes.h 包含有关 sysxtdtypes.type 和 syscolumns.coltype 代码的信息。
extended_id 列的索引只允许唯一值。locator 列的索引允许重复值,name 和 owner 列的组合索引也一样。type 和 source 列的组合索引也允许重复值。
DUAL
DUAL 系统目录表是一个全局表。它具有以下列:
列 | 类型 | 解释 |
---|---|---|
dummy | INTEGER | 值为 1。 |
DUAL 表中只有一行数据:‘1’。任何用户都可以访问 DUAL 表,它只返回一行数据。可以使用它选择系统变量或求一个表达式的值。
ORACLE兼容系统表
SYS.DBA_USERS
系统视图 SYS.DBA_USERS 描述对 sysuser 库具有访问权限的用户,仅作兼容使用。
需要设置字符集为 en_US.819,sqlmode 为 oracle,使用 sys.dba_users 查询实质为跨库查询,跨库查询时,当前库需为记日志模式。
SYS.DBA_USERS 具有以下列:
列 | 类型 | 解释 |
---|---|---|
USERNAME | CHAR(32) | 用户的名称 |
USER_ID | CHAR(1) | 用户的 ID 号,GBase 8s返回NULL |
PASSWORD | CHAR(1) | 密码,GBase 8s返回NULL |
ACCOUNT_STATUS | CHAR(4) | 帐户状态,有如下状态: ● OPEN ● LOCKED |
LOCK_DATE | CHAR(1) | 如果帐户状态为LOCKED, 锁定开始的时间,GBase 8s返回NULL |
EXPIRY_DATE | CHAR(1) | 密码有效期,GBase 8s返回NULL |
DEFAULT_TABLESPACE | CHAR(6) | 数据的缺省表空间(SYSTEM/USER) |
TEMPORARY_TABLESPACE | CHAR(4) | 临时表的默认表空间的名称 |
LOCAL_TEMP_TABLESPACE | CHAR(4) | 用户的默认本地临时表空间 |
CREATED | CHAR(1) | 用户创建日期,GBase 8s返回NULL |
PROFILE | CHAR(7) | 用户资源配置文件名称 |
INITIAL_RSRC_CONSUMER_GROUP | CHAR(1) | 用户的初始资源使用者组,GBase 8s返回NULL |
EXTERNAL_NAME | CHAR(1) | 用户外部名称,GBase 8s返回NULL |
PASSWORD_VERSIONS | CHAR(1) | 显示帐户现有的密码哈希版本,GBase 8s返回NULL |
EDITIONS_ENABLED | CHAR(1) | 指示是否已为相应用户启用版本,GBase 8s返回NULL |
AUTHENTICATION_TYPE | CHAR(1) | 指示用户的身份验证机制,GBase 8s返回N |
PROXY_ONLY_CONNECT | CHAR(1) | 指示用户是否可以直接连接或帐户是否只能由对此帐户具有代理特权的用户代理(Y/N),GBase 8s返回NULL |
COMMON | CHAR(3) | 指示给定用户是否常见 |
LAST_LOGIN | CHAR(1) | 上次用户登录的时间,GBase 8s返回NULL |
ORACLE_MAINTAINED | CHAR(1) | 表示用户是否由数据库提供的脚本创建和维护 |
INHERITED | CHAR(2) | 指示用户定义是否继承自另一个容器(YES/NO),GBase 8s返回NO |
DEFAULT_COLLATION | CHAR(1) | 用户架构的默认排序规则,GBase 8s返回NULL |
IMPLICIT | CHAR(2) | 指示此用户是否是由隐式应用程序创建的普通用户(YES/NO) |
ALL_SHARD | CHAR(2) | 在分片数据库中,此列中的值指示用户是否是在启用了分片DDL的情况下创建的 |
USER_CONS_COLUMNS
系统视图 USER_CONS_COLUMNS 描述当前数据库在约束定义中指定的列,USER_CONS_COLUMNS 具有以下列:
列 | 类型 | 解释 |
---|---|---|
OWNER | CHAR(32) | 约束的所有者 |
CONSTRAINT_NAME | VARCHAR(128) | 约束名称 |
TABLE_NAME | VARCHAR(128) | 约束的表名 |
COLUMN_NAME | VARCHAR(128) | 约束列名 |
POSITION | DECIMAL(10,0) | 列在对象定义中的原始位置 |
USER_CONSTRAINTS
USER_CONSTRAINTS 系统视图列出了对当前数据库中每个表中设置的约束。USER_CONSTRAINTS 具有以下列:
列 | 类型 | 解释 |
---|---|---|
OWNER | VARCHAR(32) | 约束的所有者 |
CONSTRAINT_NAME | VARCHAR(128) | 约束定义的名称 |
CONSTRAINT_TYPE | VARCHAR(1) | 约束定义的类型: C- 检查约束 P- 主键 U- 唯一键 R- 参照完整性 T- 表 N- NOT NULL |
TABLE_NAME | VARCHAR(128) | 约束所在的表名或视图名 |
SEARCH_CONDITION | VARCHAR(32000) | CHECK 约束的条件 |
R_OWNER | VARCHAR(32) | 引用约束所引用的表的拥有者 |
R_CONSTRAINT_NAME | VARCHAR(128) | 被引用表的唯一约束的名称 |
DELETE_RULE | VARCHAR(9) | 引用约束的删除规则: ● CASCADE ● SET NULL ● NO ACTION |
STATUS | VARCHAR(8) | 约束的状态: ● ENABLED ● DISABLED |
DEFERRABLE | VARCHAR(14) | 指示约束是否延迟生效 GBase 8s不支持,返回NULL |
DEFERRED | VARCHAR(9) | 约束是否初始为延迟生效。 GBase 8s不支持,返回NULL |
VALIDATED | VARCHAR(13) | 是否所有数据都服从约束 GBase 8s不支持,返回NULL |
GENERATED | VARCHAR(13) | 指示约束的名称是用户生成的还是系统生成的 (USER NAME /GENERATED NAME) |
BAD | VARCHAR(3) | 约束所指定的时间格式(TO_DATE)是否是可以引起歧义的。GBase 8s不支持,返回NULL |
RELY | VARCHAR(4) | 此列无实意,返回NULL |
LAST_CHANGE | DATE | 上次启用或禁用约束的时间, GBase 8s不支持,返回NULL |
INDEX_OWNER | VARCHAR(32) | 索引的所有者 |
INDEX_NAME | VARCHAR(128) | 索引的名称(仅对唯一约束和主键约束显示) |
INVALID | VARCHAR(7) | 约束是否是无效的,GBase 8s返回NULL |
VIEW_RELATED | VARCHAR(14) | 指示约束是否依赖于视图,GBase 8s返回NULL |
USER_IND_COLUMNS
系统视图 USER_IND_COLUMNS 描述了当前数据库的索引列,USER_IND_COLUMNS 具有以下列:
列 | 类型 | 解释 |
---|---|---|
INDEX_NAME | VARCHAR(128) | 索引名称 |
TABLE_NAME | VARCHAR(128) | 表名 |
COLUMN_NAME | VARCHAR(128) | 列名 |
COLUMN_POSITION | INTEGER | 列在索引中的位置 |
COLUMN_LENGTH | INTEGER | 列的数据长度 |
CHAR_LENGTH | INTEGER | 字符类型定义的最大长度 |
DESCEND | CHAR(4) | 指示列是降序还是升序(DESC/ASC) |
COLLATED_COLUMN_ID | CHAR(1) | 此列为其提供语言排序的列的内部序列号,GBase 8s返回NULL |
USER_INDEXES
系统视图 USER_INDEXES 描述了当前数据库拥有的索引,USER_INDEXES 具有以下列:
列 | 类型 | 解释 |
---|---|---|
INDEX_NAME | VARCHAR(128) | 索引名称 |
INDEX_TYPE | CHAR(6) | 索引类型,GBase 8s支持如下取值: ● NORMAL ● BITMAP |
TABLE_OWNER | CHAR(32) | 索引的所有者 |
TABLE_NAME | VARCHAR(128) | 索引的名称 |
TABLE_TYPE | CHAR(5) | 索引的类型,GBase 8s支持在表上创建索引: TABLE |
UNIQUENESS | CHAR(9) | 指示索引是否是唯一的(UNIQUE/NONUNIQUE) |
COMPRESSION | CHAR(8) | 索引的压缩类型: ● ENABLED ● DISABLED |
PREFIX_LENGTH | CHAR(1) | 压缩键前缀中的列数,GBase 8s不支持,返回NULL |
TABLESPACE_NAME | CHAR(128) | 索引所在的空间 |
INI_TRANS | CHAR(1) | 初始事务数,GBase 8s返回NULL |
MAX_TRANS | CHAR(1) | 最大交易数量,GBase 8s返回NULL |
INITIAL_EXTENT | CHAR(1) | 初始段的大小,单位为KB,GBase 8s返回NULL |
NEXT_EXTENT | CHAR(1) | 拓展段的大小,单位为KB,GBase 8s返回NULL |
MIN_EXTENTS | CHAR(1) | 段的最少页数,GBase 8s返回NULL |
MAX_EXTENTS | CHAR(1) | 段的最大页数,GBase 8s返回NULL |
PCT_INCREASE | CHAR(1) | 段的扩展百分比,GBase 8s返回NULL |
PCT_THRESHOLD | CHAR(1) | 每个索引条目允许的页空间的阈值百分比,GBase 8s返回NULL |
INCLUDE_COLUMN | CHAR(1) | 要包含在按索引组织的表主键(非溢出)索引中的最后一列的列 ID。GBase 8s返回NULL |
FREELISTS | CHAR(1) | 分配给此段的进程自由列表数,GBase 8s返回NULL |
FREELIST_GROUPS | CHAR(1) | 分配给此细分的无列表组数,GBase 8s返回NULL |
PCT_FREE | CHAR(1) | 页中可用空间的百分比,GBase 8s返回NULL |
LOGGING | CHAR(1) | 指示是否记录对索引的更改,GBase 8s返回NULL |
BLEVEL | CHAR(1) | B*-树级别。GBase 8s返回NULL |
LEAF_BLOCKS | CHAR(1) | 索引中的叶块数,GBase 8s返回NULL |
DISTINCT_KEYS | CHAR(1) | 非重复索引值的数量。GBase 8s返回NULL |
AVG_LEAF_BLOCKS_PER_KEY | CHAR(1) | 显示索引中每个不同值的叶块的平均数,四舍五入为最接近的整数。GBase 8s返回NULL |
AVG_DATA_BLOCKS_PER_KEY | CHAR(1) | 表中由索引中的非重复值所指向的数据块的平均数,GBase 8s返回NULL |
CLUSTERING_FACTOR* | CHAR(1) | 指示表中基于索引值的行的顺序量,GBase 8s返回NULL |
STATUS | CHAR(5) | 指示未分区索引状态VALID/UNUSABLE |
NUM_ROWS | INTEGER | 索引中的行数 |
SAMPLE_SIZE | CHAR(1) | 用于分析索引的样本大小,GBase 8s返回NULL |
LAST_ANALYZED | DATE | 上次分析此索引的日期,GBase 8s返回NULL |
DEGREE | CHAR(1) | 每个实例用于扫描索引的线程数,GBase 8s返回NULL |
INSTANCES | CHAR(1) | 要扫描索引的实例数,GBase 8s返回NULL |
PARTITIONED | CHAR(3) | 指示索引是否已分区 (YES/NO) |
TEMPORARY | CHAR(1) | 指示索引是否位于临时表上(Y/N) |
GENERATED | CHAR(1) | 指示索引的名称是否为系统生成(Y/N) |
SECONDARY | CHAR(1) | 指示索引是否为由数据磁带方法创建的辅助对象, GBase 8s返回NULL |
BUFFER_POOL | CHAR(1) | 用于索引页的缓冲池,GBase 8s返回NULL |
FLASH_CACHE | CHAR(1) | 用于索引页的数据库智能闪存缓存提示,GBase 8s返回NULL |
CELL_FLASH_CACHE | CHAR(1) | 用于索引块的单元闪存缓存提示,GBase 8s返回NULL |
USER_STATS | CHAR(2) | 指示统计信息是否由用户直接输入 (YES/NO) |
DURATION | CHAR(11) | 指示临时表的持续时间: ● SYS$SESSION- 行在会话期间保留 ● SYS$TRANSACTION- 行在以下时间后删除COMMIT ● NULL - 永久表 |
PCT_DIRECT_ACCESS | CHAR(1) | 对于按索引组织的表上的二级索引,具有猜测的行的百分比,GBase 8s返回NULL |
ITYP_OWNER | CHAR(1) | 对于域索引,索引类型的所有者,GBase 8s返回NULL |
ITYP_NAME | CHAR(1) | 对于域索引,索引类型的名称,GBase 8s返回NULL |
PARAMETERS | CHAR(1) | 对于域索引,参数字符串,GBase 8s返回NULL |
GLOBAL_STATS | CHAR(3) | GLOBAL_STATS是否收集或增量维护统计信息 |
DOMIDX_STATUS | CHAR(1) | 域索引的状态 |
DOMIDX_OPSTATUS | CHAR(1) | 对域索引执行的操作的状态,GBase 8s不支持,返回NULL |
FUNCIDX_STATUS | CHAR(1) | 基于函数的索引的状态,GBase 8s返回NULL |
JOIN_INDEX | CHAR(1) | 指示索引是否为联接索引,GBase 8s返回NULL |
IOT_REDUNDANT_PKEY_ELIM | CHAR(1) | 指示是否从按索引组织的表上的二级索引中消除冗余主键列,GBase 8s不支持,返回NULL |
DROPPED | CHAR(1) | 指示索引是否已被删除并且是否在回收站中,GBase 8s返回NULL |
VISIBILITY | CHAR(7) | 指示索引是指向优化器还是优化程序VISIBLE/INVISIBLE |
DOMIDX_MANAGEMENT | CHAR(1) | 如果这是域索引,则指示域索引是系统管理的还是用户管理的 (SYSTEM_MANAGED/USER_MANAGED) |
SEGMENT_CREATED | CHAR(1) | 指示索引段是否已创建,GBase 8s返回NULL |
ORPHANED_ENTRIES | CHAR(1) | 指示全局索引是否由于DROP/TRUNCATE PARTITION或在MODIFY PARTITION INDEXING OFF操作期间延迟索引维护而包含过时的条目。 GBase 8s不支持,返回NULL |
INDEXING | CHAR(1) | 指示全局索引是否与基础表分离,GBase 8s返回NULL |
USER_OBJECTS
在 USER_OBJECTS 系统视图中,在数据库中定义的每个数据库对象对应一个条目。USER_OBJECTS 具有以下列:
列 | 类型 | 解释 |
---|---|---|
OBJECT_NAME | VARCHAR(128) | 对象的名称 |
SUBOBJECT_NAME | CHAR(1) | 子对象的名称,GBase 8s返回NULL |
OBJECT_ID | SERIAL | 字典对象编号 |
DATA_OBJECT_ID | CHAR(1) | 包含该对象的段的字典对象编号,GBase 8s返回NULL |
OBJECT_TYPE | CHAR(12) | 对象的类型 (TABLE、VIEW、SEQUENCE、TRIGGER、INDEX、CONSTRAINT、PROCEDURE、FUNCTION、PACKAGE、PACKAGE BODY、UNKNOWN) |
CREATED | DATE | 用于创建对象的时间戳 |
LAST_DDL_TIME | CHAR(1) | 由 DDL 语句生成的对象和依赖对象的上次修改的时间戳,GBase 8s返回NULL |
TIMESTAMP | DATE | 对象规范的时间戳(字符数据) |
STATUS | CHAR(5) | 对象的状态: ● VALID(有效) ● INVALID(失效) |
TEMPORARY | CHAR(1) | 指示对象是临时的(Y/N),如果是全局临时表,返回Y,否则,返回N |
GENERATED | CHAR(1) | 指示此对象的名称是否为系统生成的,GBase 8s返回NULL |
SECONDARY | CHAR(1) | 指示这是否是由数据磁带的方法创建的辅助对象,GBase 8s返回NULL |
NAMESPACE | CHAR(1) | 对象的命名空间,GBase 8s返回NULL |
EDITION_NAME | CHAR(1) | 对象为实际对象的版本的名称,GBase 8s返回NULL |
USER_PROCEDURES
系统视图 USER_PROCEDURES 列出当前数据库的所有函数和过程及其关联的属性,USER_PROCEDURES具有以下列:
列 | 类型 | 解释 |
---|---|---|
OBJECT_NAME | VARCHAR(128) | 对象名称:函数、过程或包名称 |
PROCEDURE_NAME | VARCHAR(128) | 过程的名称 |
OBJECT_ID | INTEGER | 对象编号 |
SUBPROGRAM_ID | INTEGER | 子程序唯一标识 |
OVERLOAD | CHAR(1) | 重载的唯一标识,GBase 8s不支持,返回NULL |
OBJECT_TYPE | CHAR(9) | 对象类型: ● procedure ● function ● package ● unknown |
AGGREGATE | CHAR(3) | 是否为聚合函数(YES/NO) |
PIPELINED | CHAR(2) | 是否为管道表函数(YES/NO) |
IMPLTYPEOWNER | CHAR(1) | 实现类型的所有者,GBase 8s返回NULL |
IMPLTYPENAME | CHAR(1) | 实现类型的名称,GBase 8s返回NULL |
PARALLEL | CHAR(3) | 指示过程或函数是否允许并发(YES/NO) |
INTERFACE | CHAR(2) | 过程/函数是否为使用 ODCI 接口实现的表函数(YES/NO) |
DETERMINISTIC | CHAR(2) | 过程/函数是否被声明为确定的(YES/NO) |
AUTHID | CHAR(7) | 过程/函数是声明作为 DEFINER/ CURRENT_USER执行 |
RESULT_CACHE | CHAR(1) | 指示函数是否为结果缓存,GBase 8s返回NULL |
ORIGIN_CON_ID | CHAR(1) | 数据源自的容器的ID,GBase 8s返回NULL |
USER_SEQUENCES
系统视图 USER_SEQUENCES 描述了当前数据库拥有的序列,USER_SEQUENCES具有以下列
列 | 类型 | 解释 |
---|---|---|
SEQUENCE_NAME | VARCHAR(128) | 序列名称 |
MIN_VALUE | INT8 | 最小值 |
MAX_VALUE | INT8 | 最大值 |
INCREMENT_BY | INT8 | 增加步长 |
CYCLE_FLAG | CHAR(1) | 循环标记(Y/N) |
ORDER_FLAG | CHAR(1) | 指示是否按顺序生成序列号(Y/N) |
CACHE_SIZE | INTEGER | 要缓存的序列号数 |
LAST_NUMBER | BIGINT | 最后一个序列值 |
SCALE_FLAG | CHAR(1) | 指示这是否为可缩放序列(Y/N) |
EXTEND_FLAG | CHAR(1) | 指示此可缩放序列生成的值是否超出MAX_VALUE或低于MIN_VALUE(Y/N) |
SESSION_FLAG | CHAR(1) | 指示序列值是否为会话专用(Y/N) |
KEEP_VALUE | CHAR(1) | 指示在故障后的重做期间是否保留序列值(Y/N) |
USER_TAB_COLUMNS
在 USER_TAB_COLUMNS 系统视图中,在数据库中定义的表、视图上的列对应一个条目。USER_TAB_COLUMNS具有以下列:
列 | 类型 | 解释 |
---|---|---|
TABLE_NAME | VARCHAR(128) | 表、视图的名称 |
COLUMN_NAME | VARCHAR(128) | 列名 |
DATA_TYPE | LVARCHAR(2048) | 列的数据类型 |
DATA_TYPE_MOD | CHAR(1) | 列的数据类型修饰符,GBase 8s返回NULL |
DATA_TYPE_OWNER | CHAR(1) | 列的数据类型的所有者,GBase 8s返回NULL |
DATA_LENGTH | INTEGER | 列的长度(以字节为单位) |
DATA_PRECISION | LVARCHAR(40) | 数据类型的十进制精度;数据类型的二进制精度;NULL,表示其他数据类型 |
DATA_SCALE | LVARCHAR(40) | 数字中小数点右边的数字 |
NULLABLE | CHAR(1) | 指示列是否允许NULL(Y/N) |
COLUMN_ID | SMALLINT | 所创建列的序列号 |
DEFAULT_LENGTH | INTEGER | 列的默认值的长度 |
DATA_DEFAULT | LVARCHAR(2048) | 列的默认值 |
NUM_DISTINCT | CHAR(1) | 列中非重复值的数目,GBase 8s返回NULL |
LOW_VALUE | INTEGER | 列次小值,只在执行完统计更新后收集索引字段的列次小值 |
HIGH_VALUE | INTEGER | 列次大值,只在执行完统计更新后收集索引字段的列次大值 |
DENSITY | CHAR(1) | 如果直方图在COLUMN_NAME上可用,则此列显示跨越直方图中少于 2 个端点的值的选择性。 如果直方图在COLUMN_NAME不可用,则此列的值为 1/NUM_DISTINCT。 GBase 8s不支持,返回NULL |
NUM_NULLS | CHAR(1) | 列中NULL的数量,GBase 8s返回NULL |
NUM_BUCKETS | CHAR(1) | 列的直方图中的存储桶数,GBase 8s返回NULL |
LAST_ANALYZED | CHAR(1) | 最近分析此列的日期,GBase 8s返回NULL |
SAMPLE_SIZE | CHAR(1) | 用于分析此列的样本数量,GBase 8s返回NULL |
CHARACTER_SET_NAME | CHAR(8) | 字符集的名称: ● CHAR_CS ● NCHAR_CS |
CHAR_COL_DECL_LENGTH | INTEGER | 字符类型列的长度 |
GLOBAL_STATS | CHAR(3) | GLOBAL_STATS是否收集或增量维护统计信息 |
USER_STATS | CHAR(2) | 指示统计信息是否由用户直接输入(YES/NO) |
AVG_COL_LEN | CHAR(1) | 列的平均长度,GBase 8s返回NULL |
CHAR_LENGTH | INTEGER | 以字符为单位显示列的长度。此值仅适用于以下数据类型: ● CHAR ● VARCHAR ● NCHAR ● NVARCHAR ● VARCHAR2 ● NVARCHAR2 |
CHAR_USED | CHAR(1) | 列是字节长度还是字符长度(B)or(C),or (NULL):类型为 CHAR、VARCHAR、NCHAR、NVARCHAR、VARCHAR2、NVARCHAR2返回B,其他返回NULL |
V80_FMT_IMAGE | CHAR(1) | 指示列数据是否为 8.0 版图像格式,GBase 8s返回NULL |
DATA_UPGRADED | CHAR(1) | 指示列数据是否已升级到最新的类型版本格式,GBase 8s返回NULL |
HISTOGRAM | CHAR(1) | 指示直方图的存在类型,GBase 8s返回NULL |
USER_TABLES
在 USER_TABLES 系统视图中,在数据库中定义的表对应一个条目。USER_TABLES具有以下列:
列 | 类型 | 解释 |
---|---|---|
TABLE_NAME | VARCHAR(128) | 表的名称 |
TABLSPACE_NAME | CHAR(128) | 包含该表的空间名称;对于分区表、临时表,为 NULL |
CLUSTER_NAME | CHAR(1) | 表所属的群集的名称,GBase 8s返回NULL |
IOT_NAME | VARCHAR(128) | 溢出或映射表条目所属的索引组织表的名称。如果该列不为 NULL,则此列包含基表名称 |
STATUS | CHAR(5) | 表的状态。UNUSABLE无效,VALID 有效 |
PCT_FREE | CHAR(1) | 页中可用空间的最小百分比,GBase 8s返回NULL |
PCT_USED | CHAR(1) | 页中已用空间的最小百分比,GBase 8s返回NULL |
INI_TRANS | CHAR(1) | 初始事务数,GBase 8s返回NULL |
MAX_TRANS | CHAR(1) | 最大事务数,GBase 8s返回NULL |
INITIAL_EXTENT | CHAR(1) | 初始段的大小(以KB为单位),GBase 8s返回NULL |
NEXT_EXTENT | CHAR(1) | 扩展段的大小(以KB为单位),GBase 8s返回NULL |
MIN_EXTENTS | CHAR(1) | 区段中允许的最小段的大小,GBase 8s返回NULL |
MAX_EXTENTS | CHAR(1) | 区段中允许的最大段的大小,GBase 8s返回NULL |
PCT_INCREASE | CHAR(1) | 扩展数据块大小的百分比增加,GBase 8s返回NULL |
FREELISTS | CHAR(1) | 分配给分段的进程自由列表数,GBase 8s返回NULL |
FREELIST_GROUPS | CHAR(1) | 分配给该细分的自由列表组的数量,GBase 8s返回NULL |
LOGGING | CHAR(1) | 指示是否记录对表的更改,GBase 8s返回NULL |
BACKED_UP | CHAR(1) | 最后一次修改后表是否已备份,GBase 8s返回NULL |
NUM_ROWS* | INTEGER | 表中的记录数,执行统计更新后收集 |
BLOCKS* | CHAR(1) | 表中已用数据页的数量,GBase 8s返回NULL |
EMPTY_BLOCKS | CHAR(1) | 表中空页的数量,GBase 8s返回NULL |
AVG_SPACE* | CHAR(1) | 分配给表的每个页的平均空闲空间,GBase 8s返回NULL |
CHAIN_CNT* | CHAR(1) | 表中从一个数据页链接到另一个数据页的行数,GBase 8s返回NULL |
AVG_ROW_LEN* | CHAR(1) | 表中行的平均长度,GBase 8s返回NULL |
AVG_SPACE_FREELIST_BLOCKS | CHAR(1) | 自由列表中所有块的平均可用空间,GBase 8s返回NULL |
NUM_FREELIST_BLOCKS | CHAR(1) | 自由列表中的块数,GBase 8s返回NULL |
DEGREE | CHAR(1) | 每个实例用于扫描表的线程数,GBase 8s返回NULL |
INSTANCES | CHAR(1) | 要扫描表的实例数,GBase 8s返回NULL |
CACHE | CHAR(1) | 指示表是否要缓存在缓冲区中,GBase 8s返回NULL |
TABLE_LOCK | CHAR(7) | 表锁是否可用。ENABLED 可用,DISABLED 不可用 |
SAMPLE_SIZE | INTEGER | 用于分析表的样本数量,执行统计更新后收集 |
LAST_ANALYZED | DATE | 最近分析表的日期,GBase 8s返回NULL |
PARTITIONED | CHAR(3) | 是否为分区表(YES/NO) |
IOT_TYPE | CHAR(1) | 指示该表是否为索引组织表,GBase 8s返回NULL |
TEMPORARY | CHAR(1) | 指示表是否为临时表(Y/N),,如果是全局临时表,返回Y,否则,返回N |
SECONDARY | CHAR(1) | 指示表是否为由数据库的数据磁带方法创建的辅助对象,GBase 8s返回NULL |
NESTED | CHAR(1) | 指示表是否为嵌套表(YES/NO),GBase 8s返回NULL |
BUFFER_POOL | CHAR(1) | 表的缓冲池,GBase 8s返回NULL |
FLASH_CACHE | CHAR(1) | 用于表的数据库智能闪存缓存提示,GBase 8s返回NULL |
CELL_FLASH_CACHE | CHAR(1) | 用于表的单元闪存缓存提示,GBase 8s返回NULL |
ROW_MOVEMENT | CHAR(7) | 指示是否启用分区行移动(ENABLED/DISABLED) |
GLOBAL_STATS | CHAR(3) | 是否收集或增量维护统计信息(YES/NO) |
USER_STATS | CHAR(2) | 指示统计信息是否由用户直接输入(YES/NO) |
DURATION | CHAR(15) | 指示全局临时表的持续时间: ● SYS$SESSION-会话级临时表 ● SYS$TRANSACTION-事务级临时表 ● NULL -永久表 |
SKIP_CORRUPT | CHAR(1) | 指示数据库是在表和索引扫描期间忽略标记为已损坏的页还是引发错误,GBase 8s返回NULL |
MONITORING | CHAR(1) | 表是否配置了监视属性,GBase 8s返回NULL |
CLUSTER_OWNER | CHAR(1) | 表所属的群集的所有者,GBase 8s返回NULL |
DEPENDENCIES | CHAR(1) | 指示是启用还是禁用行级别依赖关系跟踪,GBase 8s返回NULL |
COMPRESSION | CHAR(8) | 指示是否启用表压缩;分区表为NULL (ENABLED/DISABLED) |
COMPRESS_FOR | CHAR(4) | 针对哪种操作的默认压缩: ● BASIC ● NULL |
DROPPED | CHAR(1) | 表是否已被删除并且还可以回滚,GBase 8s返回NULL |
READ_ONLY | CHAR(1) | 表是否是只读的,GBase 8s返回NULL |
SEGMENT_CREATED | VARCHAR(3) | 指示是否创建表段(YES/NO),GBase 8s返回NULL |
RESULT_CACHE | VARCHAR(7) | 表的结果缓存模式注释,GBase 8s返回NULL |
USER_TRIGGERS
系统视图 USER_TRIGGERS 描述了当前数据库拥有的触发器,USER_TRIGGERS具有以下列:
列 | 类型 | 解释 |
---|---|---|
TRIGGER_NAME | VARCHAR(128) | 触发器的名称 |
TRIGGER_TYPE | CHAR(1) | 当触发器触发时: ● BEFORE ● AFTER ● FOR EACH ROW |
TRIGGERING_EVENT | CHAR(6) | 触发事件: ● UPDATE ● SELECT ● DELETE ● INSERT |
TABLE_OWNER | CHAR(32) | 定义触发器的表的所有者 |
BASE_OBJECT_TYPE | CHAR(5) | 定义触发器的基本对象: ● TABLE ● VIEW |
TABLE_NAME | VARCHAR(128) | 定义触发器的表或视图名称 |
COLUMN_NAME | CHAR(1) | 触发器是嵌套表,则返回嵌套表的列名,否则为 NULL,GBase 8s返回NULL |
REFERENCING_NAMES | VARCHAR(283) | 用于从触发器中引用OLD和NEW列值的名称 |
WHEN_CLAUSE | CHAR(1) | 必须计算结果为 TRUE 才能执行TRIGGER_BODY,GBase 8s返回NULL |
STATUS | CHAR(8) | 指示触发器是启用还是禁用 ● ENABLED ● DISABLED |
DESCRIPTION | LVARCHAR(16380) | 触发器描述 |
ACTION_TYPE | CHAR(1) | 触发器主体的操作类型,GBase 8s返回NULL |
TRIGGER_BODY | LVARCHAR(16380) | 触发器在触发时执行的语句 |
CROSSEDITION | CHAR(1) | 交叉触发类型,GBase 8s返回NULL |
BEFORE_STATEMENT | CHAR(2) | 指示触发器是否具有BEFORE STATEMENT部分(YES/NO) |
BEFORE_ROW | CHAR(2) | 指示触发器是否具有BEFORE EACH ROW 部分(YES/NO) |
AFTER_ROW | CHAR(2) | 指示触发器是否具有AFTER EACH ROW 部分(YES/NO) |
AFTER_STATEMENT | CHAR(2) | 指示触发器是否具有AFTER STATEMENT部分(YES/NO) |
INSTEAD_OF_ROW | CHAR(2) | 指示触发器是否具有INSTEAD OF 部分(YES/NO) |
FIRE_ONCE | CHAR(3) | 指示触发器是仅对进行更改的用户进程触发,还是也为“流应用”或“SQL 应用”进程触发触发器(YES/NO) |
APPLY_SERVER_ONLY | CHAR(2) | 指示触发器是仅针对流应用或 SQL 应用进程触发,还是不触发 |
V$DATABASE
系统视图 VDATABASE 需要开启 DELIMIDENT 才可查看,即执行 set environment DELIMIDENT '1'; V$DATABASE具有以下列:
列 | 类型 | 解释 |
---|---|---|
DBID | INTEGER | 创建数据库时计算的数据库标识符 |
NAME | VARCHAR(128) | 数据库名称 |
CREATED | DATE | 数据库创建日期 |
RESETLOGS_CHANGE# | INTEGER | 打开resetlogs时的SCN编号 |
RESETLOGS_TIME | DATE | 打开resetlogs的时间戳 |
PRIOR_RESETLOGS_CHANGE# | INTEGER | 之前resetlogs中的 SCN |
PRIOR_RESETLOGS_TIME | DATE | 之前resetlogs的时间戳 |
LOG_MODE | VARCHAR(12) | 存档日志模式: ● NOARCHIVELOG ● ARCHIVELOG |
CHECKPOINT_CHANGE# | INTEGER | 上次检查点的 SCN |
ARCHIVE_CHANGE# | INTEGER | 数据库强制存档 SCN |
CONTROLFILE_TYPE | VARCHAR(7) | 控制文件类型: ● STANDBY-指示数据库处于待机模式 ● CLONE-指示克隆数据库 ● BACKUP | CREATED-指示正在使用备份或创建的控制文件恢复数据库b ● CURRENT-数据库可用于一般用途 |
CONTROLFILE_CREATED | DATE | 控制文件的创建日期 |
CONTROLFILE_SEQUENCE# | INTEGER | 按控制文件事务递增的控制文件序列号 |
CONTROLFILE_CHANGE# | INTEGER | 备份控制文件中的最后一个 SCN;如果控制文件不是备份,则为 null |
CONTROLFILE_TIME | DATE | 备份控制文件中的最后一个时间戳;如果控制文件不是备份,则为 null |
OPEN_RESETLOGS | VARCHAR(11) | (NOT ALLOWED | ALLOWED | REQUIRED)指示下一个打开的数据库是允许还是需要 resetlogs 选项 |
VERSION_TIME | DATE | 版本时间 |
OPEN_MODE | VARCHAR(20) | 打开模式信息: READ WRITE READ ONLY |
PROTECTION_MODE | VARCHAR(20) | 当前对数据库有效的保护模式: ● MAXIMUM PROTECTION - 数据库在最大化保护模式下运行 ● MAXIMUM AVAILABILITY - 数据库在最大化可用性模式下运行 ● MAXIMUM PERFORMANCE - 数据库在最大化性能模式下运行 ● UNPROTECTED - 数据库不受保护(这通常在装入主数据库且未打开时发生) |
PROTECTION_LEVEL | VARCHAR(20) | 当前对数据库有效的聚合保护模式: ● MAXIMUM PROTECTION-数据库在最大化保护模式下运行 ● MAXIMUM AVAILABILITY-数据库在最大化可用性模式下运行 ● MAXIMUM PERFORMANCE-数据库在最大化性能模式下运行 ● UNPROTECTED-数据库不受保护(这通常在装入主数据库且未打开时发生) |
REMOTE_ARCHIVE | VARCHAR(8) | REMOTE_ARCHIVE_ENABLE初始化参数的值 |
ACTIVATION# | INTEGER | 分配给数据库实例的编号 |
SWITCHOVER# | INTEGER | 分配给数据库切换的编号 |
DATABASE_ROLE | VARCHAR(16) | 数据库的当前角色: ● SDS ● RHAC ● HAC ● PRIMARY ● ALONE |
ARCHIVELOG_CHANGE# | INTEGER | 存档日志的最高NEXT_CHANGE# |
ARCHIVELOG_COMPRESSION | VARCHAR(8) | 归档文件日志压缩的状态(ENABLED)或(DISABLED) |
SWITCHOVER_STATUS | VARCHAR(20) | 指示是否允许切换,GBase 8s返回NULL |
DATAGUARD_BROKER | VARCHAR(8) | 数据Guard代理信息,GBase 8s返回NULL |
GUARD_STATUS | VARCHAR(7) | 防止数据被更改: ● ALL - 指示阻止除 gbasedbt 以外的所有用户对数据库中的任何数据进行更改 ● STANDBY - 指示阻止除 gbasedbt 以外的所有用户对备用数据库维护的任何数据库对象进行更改 ● NONE - 指示数据库中所有数据的正常安全性 |
SUPPLEMENTAL_LOG_DATA_MIN | VARCHAR(8) | GBase 8s无实意 |
SUPPLEMENTAL_LOG_DATA_PK | VARCHAR(3) | 对于具有主键的所有表,指示在执行更新时是否将主键的所有列放入重做日志中(YES/NO) |
SUPPLEMENTAL_LOG_DATA_UI | VARCHAR(3) | 对于具有唯一键的所有表,指示如果修改了任何唯一键列,则是否将属于该唯一键的所有其他列放入重做日志中(YES/NO) |
FORCE_LOGGING | VARCHAR(3) | 指示数据库是否处于强制日志记录模式 (YES/ NO) |
PLATFORM_ID | INTEGER | 数据库的平台标识号 |
PLATFORM_NAME | VARCHAR(101) | 数据库的平台名称 |
RECOVERY_TARGET_INCARNATION# | INTEGER | 通过“RECOVER DATABASE”命令恢复所有数据文件的编号 |
LAST_OPEN_INCARNATION# | INTEGER | GBase 8s无实意,返回null |
CURRENT_SCN | INTEGER | 当前 SCN;如果数据库当前未打开,则为 null |
FLASHBACK_ON | VARCHAR(18) | 可能的值如下所示: YES - 闪回已打开 NO - 闪回已关闭 RESTORE POINT ONLY - 闪回已打开,但只能闪回到有保证的还原点 |
SUPPLEMENTAL_LOG_DATA_FK | VARCHAR(3) | 对于具有外键的所有表,指示如果修改了任何外键列,是否将属于该外键的所有其他列放入重做日志中(YES/NO) |
SUPPLEMENTAL_LOG_DATA_ALL | VARCHAR(3) | 对于所有列,指示是否将该行的所有固定长度最大大小的列放入重做日志 (YES/ NO) |
DB_UNIQUE_NAME | VARCHAR(128) | 唯一的数据库名称 |
STANDBY_BECAME_PRIMARY_SCN | INTEGER | 物理备用数据库成为主数据库的SCN |
FS_FAILOVER_STATUS | VARCHAR(22) | 快速启动故障切换状态: DISABLED |
FS_FAILOVER_CURRENT_TARGET | VARCHAR(30) | 备用服务器的实例名 |
FS_FAILOVER_THRESHOLD | INTEGER | 观察者在尝试使用目标备用数据库进行故障安全故障转移之前,尝试与断开连接的主数据库重新连接的时间(以秒为单位) |
FS_FAILOVER_OBSERVER_PRESENT | VARCHAR(7) | 指示主观察器当前是否连接到本地数据库 (YES/NO) |
FS_FAILOVER_OBSERVER_HOST | lVARCHAR(512) | 当前承载主观察器进程的计算机名称(如果启用了快速启动故障转移)。如果未启用快速启动故障转移,则此列返回 NULL 字符串,GBase 8s返回NULL |
CONTROLFILE_CONVERTED | VARCHAR(3) | 指示控制文件在还原期间是否从其原始类型隐式转换 (YES/NO) |
PRIMARY_DB_UNIQUE_NAME | VARCHAR(128) | 对于备用数据库,此列将包含此备用数据库上次接收当前重做的主服务器的实例名。 如果此备用数据库自上次启动以来未收到任何当前重做,则此列将为 null 对于以前是备用数据库的主数据库,此列将包含此数据库在充当备用数据库时接收当前重做的最后一个主服务器的实例名 对于从未成为备用数据库的主数据库,此列将为 null |
SUPPLEMENTAL_LOG_DATA_PL | VARCHAR(3) | 指示在调用数据库提供的包中支持过程复制的过程时,是否在逻辑日志中记录其他信息(YES/NO) |
MIN_REQUIRED_CAPTURE_CHANGE# | INTEGER | 数据库上所有本地捕获进程的最小 REQUIRED_CHECKPOINT_SCN |
CDB | VARCHAR(3) | 指示是否为CDB数据库(YES/NO) |
CON_ID | INTEGER | 数据所属容器的 ID。可能的值包括: 0:此值用于包含与整个 CDB 相关的数据的行。此值还用于非 CDB 中的行 1:此值用于包含仅与根目录有关的数据的行 n:其中 n 是包含数据的行的适用容器 ID |
PENDING_ROLE_CHAN GE _TASKS | lVARCHAR(512) | 数据库guard角色更改后剩余的任务。可能的值: NONE: 没有待处理的任务 NOT APPLICABLE: 数据库要么是备用数据库,要么不是DG_CONFIG成员 BUILD_PENDING: 数据库以前是逻辑备用数据库,尚未将其数据字典的快照拍摄到重做流中 SRL_ARCHIVE_PENDING: 数据库以前是逻辑备用数据库,与早期故障转移操作关联的备用数据库重做日志尚未存档 ERROR: 数据库以前是逻辑备用数据库,字典的快照失败 未知:数据库未打开或查询失败 |
CON_DBID | INTEGER | PDB 的数据库 ID |
FORCE_FULL_DB_CACHING | VARCHAR(3) | 指示数据库中强制完整数据库缓存功能的状态。可能的值: YES - 数据库处于强制完整数据库缓存模式 NO - 数据库未强制执行完整数据库缓存模式 |
V$DATAFILE
系统视图 VDATAFILE 需要开启 DELIMIDENT才可查看,即执行 set environment DELIMIDENT '1'; V$DATAFILE具有以下列:
列 | 类型 | 解释 |
---|---|---|
FILE# | SMALLINT | chunk编号 |
CREATION_CHANGE# | INTEGER | 更改创建数据文件的编号 |
CREATION_TIME | DATE | 创建数据文件的时间戳,GBase 8s返回NULL |
TS# | SMALLINT | 空间编号 |
RFILE# | INTEGER | 空间对应的chunk数量 |
STATUS | CHAR(7) | 文件类型(system or user)及其状态: ● OFFLINE ● ONLINE |
ENABLED | CHAR(10) | 描述从 SQL 访问文件的可访问性: ● DISABLED- 不允许 SQL 访问 ● READ WRITE- 允许完全访问 |
CHECKPOINT_CHANGE# | INTEGER | 最后一个检查点 |
CHECKPOINT_TIME | DATE | 检查点的时间戳,GBase 8s返回NULL |
UNRECOVERABLE_CHANGE# | INTEGER | 对此数据文件所做的上次不可恢复的更改编号。如果数据库处于WITH LOG 模式,则在不可恢复的操作完成时更新此列。如果数据库未处于 WITH LOG 模式,则不会更新此列,GBase 8s返回0 |
UNRECOVERABLE_TIME | DATE | 上次不可恢复更改的时间戳,GBase 8s返回NULL |
LAST_CHANGE# | INTEGER | 对此数据文件所做的上次更改编号 |
LAST_TIME | DATE | 上次更改的时间戳,GBase 8s返回NULL |
OFFLINE_CHANGE# | INTEGER | 上次脱机范围的脱机更改编号,仅当数据文件联机时,才会更新此列 |
ONLINE_CHANGE# | INTEGER | 上一个脱机范围的联机更改编号 |
ONLINE_TIME | DATE | 上一个脱机范围的在线时间戳,GBase 8s返回NULL |
BYTES | DECIMAL(20,0) | 当前数据文件大小(以字节为单位);如果无法访问,则为0 |
BLOCKS | INTEGER | 当前数据文件大小(以页为单位);如果无法访问,则为 0 |
CREATE_BYTES | INTEGER | 创建时的大小(以字节为单位) |
BLOCK_SIZE | INTEGER | 数据文件的页大小 |
NAME | CHAR(256) | 数据文件的名称 |
PLUGGED_IN | INTEGER | 描述chunk是否已插入。如果表空间已插入且尚未读/写,则值为 1;如果不是,则值为 0 |
BLOCK1_OFFSET | INTEGER | 从文件开头到数据库通用信息开始位置的偏移量 |
AUX_NAME | CHAR(4) | 已通过配置 AUXNAME 为此文件设置的辅助名称,GBase 8s返回‘NONE’ |
FIRST_NONLOGGED_SCN | INTEGER | 第一个未记录的 SCN(签入备用数据库) |
FIRST_NONLOGGED_TIME | DATE | 首次未记录时间(签入备用数据库),GBase 8s返回 NULL |
FOREIGN_DBID | INTEGER | 此数据文件来自的外部 DBID。如果此文件不是外部数据库文件,则值为 0 |
FOREIGN_CREATION_CHANGE# | INTEGER | 创建外部数据文件的 SCN。如果此文件不是外部数据库文件,则值为 0 |
FOREIGN_CREATION_TIME | DATE | 外部数据文件的创建时间,GBase 8s返回NULL |
PLUGGED_READONLY | CHAR(2) | 如果是传输的只读外来文件,YES;否则,NO |
PLUGIN_CHANGE# | INTEGER | 将外部数据文件传输到数据库的 SCN。如果此文件不是外部数据库文件,则值为 0 |
PLUGIN_RESETLOGS_CHANGE# | INTEGER | 将外来文件传输到的RESETLOGS 操作的 SCN。如果此文件不是外部数据库文件,则值为 0 |
PLUGIN_RESETLOGS_TIME | DATE | 将外来文件传输到RESETLOGS 操作的时间,GBase 8s返回NULL |
CON_ID | INTEGER | 数据所属容器的 ID |
V$VERSION
V$VERSION系统视图是一个全局视图,用来查看数据库版本信息。列如下:
列 | 类型 | 解释 |
---|---|---|
BANNER | CHAR(34) | 版本号 |
CON_ID | INTEGER | 行号 |
DBA_COL_COMMENTS
DBA_COL_COMMENTS系统视图是一个全局视图,用来查看数据库表列的注释信息。列如下:
列 | 类型 | 解释 |
---|---|---|
OWNER | NCHAR(32) | 表所属用户 |
TABLE_NAME | NVARCHAR(128,0) | 表名称 |
COLUMN_NAME | NVARCHAR(128,0) | 列名称 |
COMMENTS | NVARCHAR(255,0) | 列注释 |
DBA_CONS_COLUMNS
DBA_CONS_COLUMNS系统视图是一个全局视图,用来查看数据库表约束列的相关信息。列如下:
列 | 类型 | 解释 |
---|---|---|
OWNER | NCHAR(32) | 表所属用户 |
CONSTRAINT_NAME | NVARCHAR(128,0) | 约束名 |
TABLE_NAME | NVARCHAR(128,0) | 表名称 |
COLUMN_NAME | NVARCHAR(128,0) | 列名称 |
POSITION | NVARCHAR(255,0) | 预留字段。默认空 |
DBA_IND_COLUMNS
DBA_IND_COLUMNS系统视图是一个全局视图,用来查看数据库表索引列的相关信息。列如下:
列 | 类型 | 解释 |
---|---|---|
INDEX_NAME | NVARCHAR(128,0) | 索引名称 |
TABLE_NAME | NVARCHAR(128,0) | 表名称 |
COLUMN_NAME | NVARCHAR(128,0) | 列名称 |
COLUMN_POSITION | INTEGER | 列位置 |
COLUMN_LENGTH | INTEGER | 列长度 |
CHAR_LENGTH | INTEGER | 列字节长度 |
DESCEND | CHAR(4) | 列顺序的正序(ASC)\倒序(DESC) |
COLLATED_COLUMN_ID | CHAR(1) | 预留字段,默认为空 |
DBA_OBJECTS
DBA_OBJECTS系统视图是一个全局视图,用来查看数据库对象的相关信息。列如下:
列 | 类型 | 解释 |
---|---|---|
OWNER | NCHAR(32) | 所属者 |
OBJECT_NAME | NVARCHAR(128,0) | 对象名称 |
SUBOBJECT_NAME | CHAR(1) | 预留字段,默认为空 |
OBJECT_ID | SERIAL | 对象ID |
DATA_OBJECT_ID | CHAR(1) | 预留字段,默认为空 |
OBJECT_TYPE | CHAR(12) | 对象类型,包括三种(TABLE)表,(VIEW)视图,(SEQUENCE)序列. |
CREATED | DATE | 对象创建时间 |
LAST_DDL_TIME | CHAR(1) | 预留字段,默认为空。 |
TIMESTAMP | DATE | 对象创建时间 |
STATUS | CHAR(5) | 对象状态,默认VAILD |
TEMPORARY | CHAR(1) | 是否是临时对象,Y是,N否。 |
GENERATED | CHAR(1) | 预留字段,默认为空。 |
SECONDARY | CHAR(1) | 预留字段,默认为空。 |
NAMESPACE | CHAR(1) | 预留字段,默认为空。 |
EDITION_NAME | CHAR(1) | 预留字段,默认为空。 |
DBA_TABLES
DBA_TABLES系统视图是一个全局视图,用来查看数据库表的相关信息。列如下:
列 | 类型 | 解释 |
---|---|---|
OWNER | NCHAR(32) | 表所属者 |
TABLE_NAME | NVARCHAR(128,0) | 表名称 |
TABLESPACE_NAME | CHAR(128) | Dbspaces名称 |
CLUSTER_NAME | CHAR(1) | 预留字段,默认为空 |
IOT_NAME | NVARCHAR(128,0) | 与表名称一致 |
STATUS | CHAR(5) | 状态,默认为VALID |
PCT_FREE | CHAR(1) | 预留字段,默认为空 |
PCT_USED | CHAR(1) | 预留字段,默认为空 |
INI_TRANS | CHAR(1) | 预留字段,默认为空 |
MAX_TRANS | CHAR(1) | 预留字段,默认为空 |
INITIAL_EXTENT | CHAR(1) | 预留字段,默认为空 |
NEXT_EXTENT | CHAR(1) | 预留字段,默认为空 |
MIN_EXTENTS | CHAR(1) | 预留字段,默认为空 |
MAX_EXTENTS | CHAR(1) | 预留字段,默认为空 |
PCT_INCREASE | CHAR(1) | 预留字段,默认为空 |
FREELISTS | CHAR(1) | 预留字段,默认为空 |
FREELIST_GROUPS | CHAR(1) | 预留字段,默认为空 |
LOGGING | CHAR(1) | 预留字段,默认为空 |
BACKED_UP | CHAR(1) | 预留字段,默认为空 |
NUM_ROWS | INTEGER | 表中数据行数 |
BLOCKS | CHAR(1) | 预留字段,默认为空 |
EMPTY_BLOCKS | CHAR(1) | 预留字段,默认为空 |
AVG_SPACE | CHAR(1) | 预留字段,默认为空 |
CHAIN_CNT | CHAR(1) | 预留字段,默认为空 |
AVG_ROW_LEN | CHAR(1) | 预留字段,默认为空 |
AVG_SPACE_FREELIS+ | CHAR(1) | 预留字段,默认为空 |
NUM_FREELIST_BLOC+ | CHAR(1) | 预留字段,默认为空 |
DEGREE | CHAR(1) | 预留字段,默认为空 |
INSTANCES | CHAR(1) | 预留字段,默认为空 |
CACHE | CHAR(1) | 预留字段,默认为空 |
TABLE_LOCK | CHAR(7) | 表能否被锁,默认ENABLE |
SAMPLE_SIZE | INTEGER | 预留字段,默认为空 |
LAST_ANALYZED | DATE | 预留字段,默认为空 |
PARTITIONED | CHAR(3) | 是否分区,partnum=0时表示有分区(Y),否则无分区(N)。 |
IOT_TYPE | CHAR(1) | 预留字段,默认为空 |
TEMPORARY | CHAR(1) | 是否是临时对象,Y是,N否。 |
SECONDARY | CHAR(1) | 预留字段,默认为空 |
NESTED | CHAR(1) | 预留字段,默认为空 |
BUFFER_POOL | CHAR(1) | 预留字段,默认为空 |
FLASH_CACHE | CHAR(1) | 预留字段,默认为空 |
CELL_FLASH_CACHE | CHAR(1) | 预留字段,默认为空 |
ROW_MOVEMENT | CHAR(7) | 默认ENABLED |
GLOBAL_STATS | CHAR(3) | 默认YES |
USER_STATS | CHAR(2) | 默认NO |
DURATION | CHAR(15) | 有效区间。 事物中(SYS$TRANSACTION)。 或者 会话中SYS$SESSION。 |
SKIP_CORRUPT | CHAR(1) | 预留字段,默认为空 |
MONITORING | CHAR(1) | 预留字段,默认为空 |
CLUSTER_OWNER | CHAR(1) | 预留字段,默认为空 |
DEPENDENCIES | CHAR(1) | 预留字段,默认为空 |
COMPRESSION | CHAR(8) | 固定值(DISABLED) |
COMPRESS_FOR | CHAR(1) | 预留字段,默认为空 |
DROPPED | CHAR(1) | 预留字段,默认为空 |
READ_ONLY | CHAR(1) | 预留字段,默认为空 |
SEGMENT_CREATED | VARCHAR(3,0) | 预留字段,默认为空 |
RESULT_CACHE | VARCHAR(7,0) | 预留字段,默认为空 |
DBA_TAB_COLS
DBA_TAB_COLS系统视图是一个全局视图,用来查看数据库表列的相关信息。列如下:
列 | 类型 | 解释 |
---|---|---|
OWNER | NCHAR(32) | 表所属者 |
TABLE_NAME | NVARCHAR(128,0) | 表名称 |
COLUMN_NAME | NVARCHAR(128,0) | 列名称 |
DATA_TYPE | LVARCHAR(2048) | 数据类型 |
DATA_TYPE_MOD | CHAR(1) | 预留字段,默认NULL |
DATA_TYPE_OWNER | CHAR(1) | 预留字段,默认NULL |
DATA_LENGTH | INTEGER | 列类型长度 |
DATA_PRECISION | LVARCHAR(40) | 类型精度,有效数字长度 |
DATA_SCALE | LVARCHAR(40) | 刻度,数据的小数位数 |
NULLABLE | CHAR(1) | 空值标示,默认为Y |
COLUMN_ID | SMALLINT | 列序号 |
DEFAULT_LENGTH | INTEGER | 默认长度 |
DATA_DEFAULT | LVARCHAR(2048) | 数据默认值 |
NUM_DISTINCT | CHAR(1) | 预留字段,默认NULL |
LOW_VALUE | INTEGER | |
HIGH_VALUE | INTEGER | |
DENSITY | CHAR(1) | 预留字段,默认为NULL |
NUM_NULLS | CHAR(1) | 预留字段,默认为NULL |
NUM_BUCKETS | CHAR(1) | 预留字段,默认为NULL |
LAST_ANALYZED | CHAR(1) | 预留字段,默认为NULL |
SAMPLE_SIZE | CHAR(1) | 预留字段,默认为NULL |
CHARACTER_SET_NAME | CHAR(8) | 字符集名称,当字段类型为CHAR,VARCHAR等时赋值为CHAR_CS,当数据为NCHAR,NVARCHAR时赋值为NCHAR_CS |
CHAR_COL_DECL_LENGTH | INTEGER | 字符列长度,非字符类型为NULL |
GLOBAL_STATS | CHAR(3) | 是否全局范围,默认YES |
USER_STATS | CHAR(2) | 用户状态,默认NO |
AVG_COL_LEN | CHAR(1) | 预留字段,默认NULL |
CHAR_LENGTH | INTEGER | 字符类型长度 |
CHAR_USED | CHAR(1) | 字符类型是否使用,使用为B,不适用为NULL |
V80_FMT_IMAGE | CHAR(1) | 预留字段,默认为NULL |
DATA_UPGRADED | CHAR(1) | 预留字段,默认为NULL |
HISTOGRAM | CHAR(1) | 预留字段,默认为NULL |
DBA_TAB_COLUMNS
DBA_TAB_COLUMNS系统视图与DBA_TAB_COLS内容相同。
DBA_TAB_COMMENTS
DBA_TAB_COMMENTS系统视图是一个全局视图,用来查看数据库表注释的相关信息。列如下:
列 | 类型 | 解释 |
---|---|---|
OWNER | CHAR(32) | 表所属 |
TABLE_NAME | VARCHAR(128,0) | 表名称 |
TABLE_TYPE | CHAR(5) | 表类型,TABLE或者VIEW |
COMMENTS | NVARCHAR(255,0) | 注释 |
DBA_VIEWS
DBA_VIEWS系统视图是一个全局视图,用来查看数据库视图的相关信息。列如下:
列 | 类型 | 解释 |
---|---|---|
OWNER | CHAR(32) | 视图所属 |
VIEW_NAME | VARCHAR2(128,0) | 视图名称 |
VIEW_LENGTH | INTEGER | 视图中语句长度 |
TEXT | CLOB | 常见视图的语句 |
TEXT_VC | VARCHAR2(4000,0) | 常见视图的语句 |
TYPE_TEXT_LENGTH | DECIMAL(16) | 预留字段,默认为NULL |
TYPE_TEXT | VARCHAR2(4000,0) | 预留字段,默认为NULL |
OID_TEXT_LENGTH | DECIMAL(16) | 预留字段,默认为NULL |
OID_TEXT | VARCHAR2(4000,0) | 预留字段,默认为NULL |
VIEW_TYPE_OWNER | VARCHAR2(128,0) | 预留字段,默认为NULL |
VIEW_TYPE | VARCHAR2(128,0) | 预留字段,默认为NULL |
SUPERVIEW_NAME | VARCHAR2(128,0) | 预留字段,默认为NULL |
EDITIONING_VIEW | VARCHAR2(1,0) | 视图是是否可编辑,固定值N |
READ_ONLY | VARCHAR2(1,0) | 视图是否只读,固定值N |
CONTAINER_DATA | VARCHAR2(1,0) | 固定值N |
BEQUEATH | VARCHAR2(12,0) | 固定值N |
ORIGIN_CON_ID | DECIMAL(16) | 固定值1 |
DEFAULT_COLLATION | VARCHAR2(100,0) | 固定值1 |
CONTAINERS_DEFAULT | VARCHAR2(3,0) | 固定值NO |
CONTAINER_MAP | VARCHAR2(3,0) | 固定值NO |
EXTENDED_DATA_LINK | VARCHAR2(3,0) | 固定值NO |
EXTENDED_DATA_LINK_MAP | VARCHAR2(3,0) | 固定值NO |
USER_ALL_TABLES
USER_ALL_TABLES系统视图是一个当前库视图,用来查看当前库中表的相关信息。列如下:
列 | 类型 | 解释 |
---|---|---|
OWNER | NCHAR(32) | 表所属者 |
TABLE_NAME | NVARCHAR(128,0) | 表名称 |
TABLESPACE_NAME | CHAR(128) | Dbspaces名称 |
CLUSTER_NAME | CHAR(1) | 固定值NULL |
IOT_NAME | NVARCHAR(128,0) | 存储表名称 |
STATUS | CHAR(5) | 固定值VAILD |
PCT_FREE | CHAR(1) | 固定值NULL |
PCT_USED | CHAR(1) | 固定值NULL |
INI_TRANS | CHAR(1) | 固定值NULL |
MAX_TRANS | CHAR(1) | 固定值NULL |
INITIAL_EXTENT | CHAR(1) | 固定值NULL |
NEXT_EXTENT | CHAR(1) | 固定值NULL |
MIN_EXTENTS | CHAR(1) | 固定值NULL |
MAX_EXTENTS | CHAR(1) | 固定值NULL |
PCT_INCREASE | CHAR(1) | 固定值NULL |
FREELISTS | CHAR(1) | 固定值NULL |
FREELIST_GROUPS | CHAR(1) | 固定值NULL |
LOGGING | CHAR(1) | 固定值NULL |
BACKED_UP | CHAR(1) | 固定值NULL |
NUM_ROWS | INTEGER | 行数 |
BLOCKS | CHAR(1) | 固定值NULL |
EMPTY_BLOCKS | CHAR(1) | 固定值NULL |
AVG_SPACE | CHAR(1) | 固定值NULL |
CHAIN_CNT | CHAR(1) | 固定值NULL |
AVG_ROW_LEN | CHAR(1) | 固定值NULL |
AVG_SPACE_FREELIS+ | CHAR(1) | 固定值NULL |
NUM_FREELIST_BLOC+ | CHAR(1) | 固定值NULL |
DEGREE | CHAR(1) | 固定值NULL |
INSTANCES | CHAR(1) | 固定值NULL |
CACHE | CHAR(1) | 固定值NULL |
TABLE_LOCK | CHAR(7) | 固定值ENABLED |
SAMPLE_SIZE | INTEGER | 表中行数 |
LAST_ANALYZED | DATE | 固定值NULL |
PARTITIONED | CHAR(3) | 是(YES)否(NO)分区 |
IOT_TYPE | CHAR(1) | 固定值NULL |
TEMPORARY | CHAR(1) | 是(Y)否(N)是临时对象 |
SECONDARY | CHAR(1) | 固定值NULL |
NESTED | CHAR(1) | 固定值NULL |
BUFFER_POOL | CHAR(1) | 固定值NULL |
FLASH_CACHE | CHAR(1) | 固定值NULL |
CELL_FLASH_CACHE | CHAR(1) | 固定值NULL |
ROW_MOVEMENT | CHAR(7) | 固定值ENABLED |
GLOBAL_STATS | CHAR(3) | 固定值YES |
USER_STATS | CHAR(2) | 固定值NO |
DURATION | CHAR(15) | 有效期间,事物中(SYS$TRANSACTION)或者会话中(SYS$SESSION) |
SKIP_CORRUPT | CHAR(1) | 固定值NULL |
MONITORING | CHAR(1) | 固定值NULL |
CLUSTER_OWNER | CHAR(1) | 固定值NULL |
DEPENDENCIES | CHAR(1) | 固定值NULL |
COMPRESSION | CHAR(8) | 是否压缩,固定值NO |
COMPRESS_FOR | CHAR(1) | 固定值NULL |
DROPPED | CHAR(1) | 固定值NULL |
READ_ONLY | CHAR(1) | 固定值NULL |
SEGMENT_CREATED | VARCHAR(3,0) | 固定值NULL |
USER_COL_COMMENTS
USER_COL_COMMENTS系统视图是一个当前库视图,用来查看当前库表字段注释的相关信息。列如下:
列 | 类型 | 解释 |
---|---|---|
OWNER | NCHAR(32) | 表所属用户 |
TABLE_NAME | NVARCHAR(128,0) | 表名称 |
COLUMN_NAME | NVARCHAR(128,0) | 列名称 |
COMMENTS | NVARCHAR(255,0) | 列注释 |
USER_TAB_COLS
USER_TAB_COLS系统视图是一个当前库视图,用来查看当前库表的列相关信息。列如下:
列 | 类型 | 解释 |
---|---|---|
TABLE_NAME | VARCHAR(128,0) | 表名称 |
COLUMN_NAME | VARCHAR(128,0) | 列名称 |
DATA_TYPE | LVARCHAR(2048) | 数据类型 |
DATA_TYPE_MOD | CHAR(1) | 固定值NULL |
DATA_TYPE_OWNER | CHAR(1) | 固定值NULL |
DATA_LENGTH | INTEGER | 数据长度 |
DATA_PRECISION | LVARCHAR(40) | 数据精度,有效数据长度 |
DATA_SCALE | LVARCHAR(40) | 数据小数范围 |
NULLABLE | CHAR(1) | 是否为空,固定值Y |
COLUMN_ID | SMALLINT | 列编号 |
DEFAULT_LENGTH | INTEGER | 默认长度 |
DATA_DEFAULT | LVARCHAR(2048) | 默认数据 |
NUM_DISTINCT | CHAR(1) | 固定值NULL |
LOW_VALUE | INTEGER | |
HIGH_VALUE | INTEGER | |
DENSITY | CHAR(1) | 固定值NULL |
NUM_NULLS | CHAR(1) | 固定值NULL |
NUM_BUCKETS | CHAR(1) | 固定值NULL |
LAST_ANALYZED | CHAR(1) | 固定值NULL |
SAMPLE_SIZE | CHAR(1) | 固定值NULL |
CHARACTER_SET_NAME | CHAR(8) | 字符集名称,当字段类型为CHAR,VARCHAR等时赋值为CHAR_CS,当数据为NCHAR,NVARCHAR时赋值为NCHAR_CS |
CHAR_COL_DECL_LENGTH | INTEGER | 字符列长度,非字符类型为NULL |
GLOBAL_STATS | CHAR(3) | 是否全局范围,默认YES |
USER_STATS | CHAR(2) | 用户状态,默认NO |
AVG_COL_LEN | CHAR(1) | 预留字段,默认NULL |
CHAR_LENGTH | INTEGER | 字符类型长度 |
CHAR_USED | CHAR(1) | 字符类型是否使用,使用为B,不适用为NULL |
V80_FMT_IMAGE | VARCHAR(3,0) | 预留字段,默认为NULL |
DATA_UPGRADED | VARCHAR(3,0) | 预留字段,默认为NULL |
HIDDEN_COLUMN | CHAR(3) | 是否隐藏列 |
VIRTUAL_COLUMN | CHAR(3) | 是否虚拟列 |
SEGMENT_COLUMN_ID | CHAR(1) | 预留字段,默认为NULL |
INTERNAL_COLUMN_ID | CHAR(1) | 预留字段,默认为NULL |
HISTOGRAM | VARCHAR(15,0) | 预留字段,默认为NULL |
QUALIFIED_COL_NAME | VARCHAR(128,0) | 表列 |
USER_TAB_COMMENTS
USER_TAB_COMMENTS系统视图是一个当前库视图,用来查看数据当前库表注释的相关信息。列如下:
列 | 类型 | 解释 |
---|---|---|
OWNER | CHAR(32) | 表所属 |
TABLE_NAME | VARCHAR(128,0) | 表名称 |
TABLE_TYPE | CHAR(5) | 表类型 |
COMMENTS | NVARCHAR(255,0) | 注释 |
USER_USERS
USER_USERS系统视图是一个当前库视图,用来查看当前库用户的相关信息。列如下:
列 | 类型 | 解释 |
---|---|---|
USERNAME | CHAR(32) | 用户名 |
USER_ID | INTEGER | 用户ID,存储表中ROWID |
ACCOUNT_STATUS | CHAR(4) | 账户状态,固定值OPEN |
LOCK_DATE | DATE | 固定值NULL |
EXPIRY_DATE | DATE | 固定值NULL |
DEFAULT_TABLESPACE | CHAR(1) | 固定值NULL |
TEMPORARY_TABLESPACE | CHAR(1) | 固定值NULL |
LOCAL_TEMP_TABLESPACE | CHAR(1) | 固定值NULL |
CREATED | CHAR(1) | 固定值NULL |
INITIAL_RSRC_CONSUMER_GROUP | CHAR(1) | 固定值NULL |
EXTERNAL_NAME | CHAR(1) | 固定值NULL |
PROXY_ONLY_CONNECT | CHAR(1) | 固定值NULL |
COMMON | CHAR(1) | 固定值NULL |
INHERITED | CHAR(1) | 固定值NULL |
DEFAULT_COLLATION | CHAR(1) | 固定值NULL |
IMPLICIT | CHAR(1) | 固定值NULL |
ALL_SHARD | CHAR(1) | 固定值NULL |
V$LICENSE
V$LICENSE系统视图是一个全局视图,用来查看数据库LICENSE的相关信息。列如下:
列 | 类型 | 解释 |
---|---|---|
SESSIONS_MAX | INTEGER | 固定值0 |
SESSIONS_WARNING | INTEGER | 固定值0 |
SESSIONS_CURRENT | INTEGER | 固定值0 |
SESSIONS_HIGHWATER | INTEGER | 固定值0 |
USERS_MAX | INTEGER | 固定值0 |
CPU_COUNT_CURRENT | INTEGER | 固定值0 |
CPU_CORE_COUNT_CURRENT | INTEGER | 固定值0 |
CPU_SOCKET_COUNT_CURRENT | INTEGER | 固定值0 |
CPU_COUNT_HIGHWATER | INTEGER | 固定值0 |
CPU_CORE_COUNT_HIGHWATER | INTEGER | 固定值0 |
CPU_SOCKET_COUNT_HIGHWATER | INTEGER | 固定值0 |
CON_ID | INTEGER | 固定值0 |
SYSDBLINK
SYSDBLINK系统视图是一个元数据管理表,用来查看数据库dblink的相关信息。列如下:
列 | 类型 | 解释 |
---|---|---|
ID | SERIAL | 序号 |
NAME | VARCHAR(128,0) | DBLINK名称 |
OWNER | VARCHAR(32,0) | DBLINK所属者 |
CTIME | DATE | 创建时间 |
HOST | VARCHAR(2000,0) | 连接字符串 |
USERID | VARCHAR(128,0) | 远程服务器用户名 |
PASSWORD | VARCHAR(128,0) | 远程服务器密码 |
FLAG | INTEGER | gbase标识为465。oracle标识为468。 |
AUTHUSR | VARCHAR(128,0) | 预留字段,暂为空 |
AUTHPWD | VARCHAR(128,0) | 预留字段,暂为空 |
PASSWORDX | VARCHAR(2000,0) | 预留字段,暂为空 |
AUTHPWDX | VARCHAR(2000,0) | 连接字符串 |
DBTYPE | CHAR(1) | 数据库类型,gbase为G.oracle为O。 |
DBNAME | VARCHAR(128,0) | 远程服务器数据库名称 |
SERVERNAME | VARCHAR(128,0) | 远程服务器数据库服务名称 |
USER_DB_LINKS
user_DB_LINKs系统视图是一个用户视图,用来查看数据库DBLINK的相关信息。列如下:
列 | 类型 | 解释 |
---|---|---|
DB_LINK | VARCHAR(128,0) | DBLINK名称 |
USERNAME | VARCHAR(128,0) | 远程服务器用户名 |
PASSWORD | VARCHAR(128,0) | 远程服务器密码 |
HOST | VARCHAR(2000,0) | 连接字符串 |
CREATED | DATE | 创建时间 |
HIDDEN | CHAR(2) | 是否隐藏,固定值NO |
dba_db_links
dba_db_links系统视图是一个全局视图,用来查看数据库DBLINK的相关信息。列如下:
列 | 类型 | 解释 |
---|---|---|
DB_LINK | VARCHAR(128,0) | DBLINK名称 |
USERNAME | VARCHAR(128,0) | 远程服务器用户名 |
PASSWORD | VARCHAR(128,0) | 远程服务器密码 |
HOST | VARCHAR(2000,0) | 连接字符串 |
CREATED | DATE | 创建时间 |
HIDDEN | CHAR(2) | 是否隐藏,固定值NO |
v$dblink
v$dblink系统视图是一个全局视图,用来查看数据库DBLINK的相关信息。列如下:
列 | 类型 | 解释 |
---|---|---|
DB_LINK | VARCHAR(128,0) | DBLINK名称 |
USERNAME | VARCHAR(128,0) | 远程服务器用户名 |
PASSWORD | VARCHAR(128,0) | 远程服务器密码 |
HOST | VARCHAR(2000,0) | 连接字符串 |
CREATED | DATE | 创建时间 |
HIDDEN | CHAR(2) | 是否隐藏,固定值NO |
TYPE$
TYPE$系统视图是一个当前库视图,用来查看当前库中自定义对象类型的信息。列如下:
列 | 类型 | 解释 |
---|---|---|
TOID | BIGINT | 对象类型唯一标识 |
VERSION$ | INTEGER | 默认1 |
VERSION | VARCHAR2(128,0) | 当类型为包类型时保存包名 |
TVOID | BIGINT | 同TOID |
TYPECODE | INTEGER | 对象的类型 |
PROPERTIES | INTEGER | 备用字段 |
ATTRIBUTES | INTEGER | 类型的属性数量 |
METHODS | INTEGER | 类型的方法数量 |
HIDDENMETHODS | INTEGER | 备用字段 |
SUPERTYPES | INTEGER | 备用字段 |
SUBTYPES | INTEGER | 默认为0 |
EXTERNTYPE | INTEGER | 备用字段 |
EXTERNNAME | VARCHAR2(512,0) | 备用字段 |
HELPERCLASSNAME | VARCHAR2(512,0) | 备用字段 |
LOCAL_ATTRS | INTEGER | 备用字段 |
LOCAL_METHODS | INTEGER | 备用字段 |
TYPEID | BIGINT | 类型ID |
ROOTTOID | BIGINT | 备用字段 |
SPARE1 | INTEGER | 备用字段 |
SPARE2 | INTEGER | 备用字段 |
SPARE3 | INTEGER | 备用字段 |
SUPERTOID | BIGINT | 备用字段 |
HASHCODE | VARCHAR2(128,0) | 哈希码 |
TYPE_NAME | VARCHAR2(128,0) | 类型的名称 |
PACKAGE_OBJ$ | INTEGER | 类型名称(仅PKG类型使用) |
ATTRIBUTE$
ATTRIBUTE$系统视图是一个当前库视图,用来查看当前库中自定义对象类型属性的信息。列如下:
列 | 类型 | 解释 |
---|---|---|
TOID | BIGINT | 继承自type系统表TOID,当TOID重名继承自TVOID |
VERSION$ | INTEGER | 继承自type$的VERSION$ |
NAME | VARCHAR2(128,0) | 属性名称 |
ATTRIBUTE$ | INTEGER | 在类型说明或创建类型语句中指定的属性合成顺序、编号或位置 |
ATTR_TOID | BIGINT | 属性类型id |
ATTR_VERSION$ | INTEGER | 默认为1 |
SYNOBJ$ | INTEGER | 备用字段 |
PROPERTIES | INTEGER | 属性类型 |
CHARSETID | INTEGER | 字符集ID,被NLS_CHARSET_NAME函数使用获取字符集信息 |
CHARSETFORM | INTEGER | 1: 'CHAR_CS' 2: 'NCHAR_CS' 3: NLS_CHARSET_NAME(a.charsetid) 4: 'ARG:' || a.charsetid |
LENGTH | INTEGER | char属性的长度,varchar、varchar2属性的最大长度 |
PRECISION$ | INTEGER | 数值、十进制属性的十进制与浮点属性二进制的精度 |
SCALE | INTEGER | NUMBER或DECIMAL属性的数值或十进制属性的范围 |
EXTERNNAME | VARCHAR2(512,0) | 外部变量名 |
XFLAGS | INTEGER | 默认为0 |
SPARE1 | INTEGER | 备用字段 |
SPARE2 | INTEGER | 备用字段 |
SPARE3 | INTEGER | 备用字段 |
SPARE4 | INTEGER | 备用字段 |
SPARE5 | INTEGER | 备用字段 |
SETTER | INTEGER | 备用字段 |
GETTER | INTEGER | 备用字段 |
METHOD$
METHOD$系统视图是一个当前库视图,用来查看当前库中自定义对象类型方法的信息。列如下:
列 | 类型 | 解释 |
---|---|---|
TOID | BIGINT | 对象唯一标识符 |
VERSION$ | INTEGER | 继承自type$的VERSION$ |
METHOD$ | INTEGER | 区分重载的方法号(不用作ID号) |
NAME | VARCHAR2(128,0) | 方法名称 |
PROPERTIES | INTEGER | 方法类型及属性 |
PARAMETERS$ | INTEGER | 参数个数 |
RESULTS | INTEGER | 返回值个数 |
XFLAGS | INTEGER | 默认为0 |
SPARE1 | INTEGER | 备用字段 |
SPARE2 | INTEGER | 备用字段 |
SPARE3 | INTEGER | 备用字段 |
EXTERNVARNAME | VARCHAR2(512,0) | 外部变量名 |
RESULT$
RESULT$系统视图是一个当前库视图,用来查看当前库中对象类型方法函数返回值的信息。列如下:
列 | 类型 | 解释 |
---|---|---|
TOID | BIGINT | 对象唯一标识符 |
VERSION$ | INTEGER | 备用字段 |
METHOD$ | INTEGER | 继承自method$的METHOD$,区分重载的方法号,可与TOID共同作为索引 |
RESULT$ | INTEGER | 函数返回值标号(从1递增) |
RESULT_TOID | BIGINT | 返回值类型id |
RESULT_VERSION$ | INTEGER | 备用字段 |
SYNOBJ$ | INTEGER | 备用字段 |
PROPERTIES | INTEGER | 备用字段 |
CHARSETID | INTEGER | 字符集ID,被NLS_CHARSET_NAME函数使用获取字符集信息 |
CHARSETFORM | INTEGER | 1: 'CHAR_CS' 2: 'NCHAR_CS' 3: NLS_CHARSET_NAME(a.charsetid) 4: 'ARG:' || a.charsetid |
SPARE1 | INTEGER | 备用字段 |
SPARE2 | INTEGER | 备用字段 |
SPARE3 | INTEGER | 备用字段 |
PARAMETER$
PARAMETER$系统视图是一个当前库视图,用来查看当前库中对象类型方法参数的信息。列如下:
列 | 类型 | 解释 |
---|---|---|
TOID | BIGINT | 对象唯一标识符 |
VERSION$ | INTEGER | 备用字段 |
METHOD$ | INTEGER | 继承自method$的METHOD$,区分重载的方法号,可与TOID共同作为索引 |
NAME | VARCHAR2(128,0) | 参数名字 |
PARAMETER$ | INTEGER | 函数参数标号(从1递增) |
PARAM_TOID | BIGINT | 参数类型ID |
PARAM_VERSION$ | INTEGER | 备用字段 |
SYNOBJ$ | INTEGER | 备用字段 |
PROPERTIES | INTEGER | 备用字段 |
CHARSETID | INTEGER | 字符集ID,被NLS_CHARSET_NAME函数使用获取字符集信息 |
CHARSETFORM | INTEGER | 1: 'CHAR_CS' 2: 'NCHAR_CS' 3: NLS_CHARSET_NAME(a.charsetid) 4: 'ARG:' || a.charsetid |
DEFAULT$ | VARCHAR2(512,0) | 参数默认值 |
SPARE1 | INTEGER | 备用字段 |
SPARE2 | INTEGER | 备用字段 |
SPARE3 | INTEGER | 备用字段 |
SOURCE$
SOURCE$系统视图是一个当前库视图,用来查看当前库中对象的源码的信息。列如下:
列 | 类型 | 解释 |
---|---|---|
OBJID | BIGINT | 对象唯一标识符。 如果为oracle type类型,继承子type$系统表TOID或TVOID。 |
DATAKEY | SMALLINT | routine:1 package:2 oracle type:13 oracle type body:14 |
SEQNO | INTEGER | 对象源码号 |
SOURCE | VARCHAR2(256,0) | 对象源码,以256位长度进行分块拆分 |
COLLECTION$
COLLECTION$系统视图是一个当前库视图,用来查看当前库中创建的集合类型的信息。列如下:
列 | 类型 | 解释 |
---|---|---|
TOID | BIGINT | 继承自type$表 |
VERSION$ | INTEGER | |
COLL_TOID | BIGINT | |
COLL_VERSION$ | INTEGER | |
ELEM_TOID | BIGINT | 子类型OID |
ELEM_VERSION$ | INTEGER | |
SYNOBJ$ | INTEGER | |
PROPERTIES | INTEGER | |
CHARSETID | INTEGER | 字符集ID |
CHARSETFORM | INTEGER | |
LENGTH | INTEGER | 成员长度 |
PRECISION | INTEGER | 精度 |
SCALE | INTEGER | 小数位数 |
UPPER_BOUND | INTEGER | 数组长度 |
SPARE1 | INTEGER | 备用字段 |
SPARE2 | INTEGER | 备用字段 |
SPARE3 | INTEGER | 备用字段 |
PACKAGE_OBJ$ | INTEGER | 包类型 |
COLL_NAME | VARCHAR2(128,0) | 类型名(仅PKG类型使用) |
SYN$
SYN$系统视图是一个当前库视图,用来查看当前库中创建的公共同义词的信息。列如下:
列 | 类型 | 解释 |
---|---|---|
OBJ | SERIAL | 序号 |
SERVERNAME | VARCHAR(128,0) | 实例名称 |
DBNAME | VARCHAR(128,0) | 数据库名称 |
OWNER | VARCHAR(128,0) | 所属用户名称 |
OBJNAME | VARCHAR(128,0) | 同义词名称 |
TYPE | CHAR(1) | 1. 基于表的同义词 D-基于dblink的同义词 |
BOBJID | INTEGER | 同义词来源对象的id |
TABNAME | VARCHAR(128,0) | 同义词来源表名 |
DBLINKNAME | VARCHAR(128,0) | 同义词来源dblink名称 |
信息模式
“信息模式”由一些只读视图组成,它们提供有关当前数据库服务器中您可以存取的所有表、视图和列的信息。这些视图还提供了有关 SQL 方言(例如 GBase 8s、Oracle 或 Sybase)和 SQL 标准的信息。请注意,与系统目录(其表描述个别数据库)不同,这些视图描述 GBase 8s 实例,而不是单个数据库。
此版本的“信息模式”视图符合 X/Open CAE 标准。提供这些标准的目的是,允许其他数据库系统上开发的应用程序不必直接访问 GBase 8s 系统目录表,即可获取 GBase 8s 系统目录信息。
因为 X/Open CAE 标准“信息模式”视图不同于符合 ANSI 的“信息模式”视图,所以建议您不要在符合 ANSI 标准的数据库上安装 X/Open CAE“信息模式”视图。
下列“信息模式”视图可用:
tables
列
sql_languages
server_info
生成信息模式视图
“信息模式”视图是在您作为 DBA 运行以下 DB-Access 命令时自动生成的:
dbaccess database-name $GBASEDBTDIR/etc/xpg4_is.sql
视图显示系统目录表中的数据。如果表、视图或例程存在并具有与“信息模式”视图相同的任何名称,那么必须重命名这些数据库对象或者在脚本中重命名视图之后才能安装视图。可以对每个视图使用 DROP VIEW 语句来删除视图。要重新创建视图,重新运行脚本。
除了为每个“信息模式”视图指定的列之外,个别供应商可能会包含附加列或更改列的顺序。建议应用程序不要使用格式 SELECT * 或 SELECT table-name* 来访问“信息模式”视图。
访问信息模式视图
所有“信息模式”视图都会将 Select 特权授予 PUBLIC WITH GRANT OPTION,以便所有用户都可查询这些视图。因为未对“信息模式”视图授予任何其他特权,所以不能更新它们。
可以如同查询数据库中的任何其他表或视图那样查询“信息模式”视图。
信息模式视图的结构
本节中描述下列“信息模式”视图:
tables
columns
sql_languages
server_info
为了接受长标识名称,视图中的大部分列被定义为具有很大的最大大小的 VARCHAR 数据类型。
表“信息模式”视图
tables 信息模式视图对您可以访问的每个表包含一行。它包含以下列。
列 | 数据类型 | 解释 |
---|---|---|
table_schema | VARCHAR(32) | 表所有者的名称 |
table_name | VARCHAR(128) | 表或视图的名称 |
table_type | VARCHAR(128) | BASE TABLE 表示表,或者 VIEW 表示视图 |
remarks | VARCHAR(255) | 保留供将来使用 |
tables 视图中的可视行取决于您的特权。例如,如果您对表具有一种或多种特权(例如,对一个或多个列的 Insert、Delete、Select、References、Alter、Index 或 Update 特权),或者如果将特权授予 PUBLIC,那么可以看到描述该表的行。
列“信息模式”视图
columns 信息模式视图对每个可访问列包含一行。它包含以下列。
表 41. 列信息模式视图的描述
列 | 数据类型 | 解释 |
---|---|---|
table_schema | VARCHAR(128) | 表所有者的名称 |
table_name | VARCHAR(128) | 表或视图的名称 |
column_name | VARCHAR(128) | 表或视图中列的名称 |
ordinal_position | INTEGER | 列在其表中的位置 ordinal_position 值是一个顺序编号,从 1 开始(表示第一列)。这是对 XPG4 的 GBase 8s 扩展。 |
data_type | VARCHAR(254) | 列的数据类型名称,例如,CHARACTER 或 DECIMAL |
char_max_length | INTEGER | 字符数据类型的最大长度(以字节计);其他情况为 NULL |
numeric_precision | INTEGER | 使用下列值之一: 精确数字数据类型(DECIMAL、INTEGER、MONEY 和 SMALLINT)的总位数 近似数据类型(FLOAT 和 SMALLFLOAT)的尾数精度(与机器相关)的位数 对于所有其他数据类型为 NULL。 |
numeric_prec_radix | INTEGER | 使用下列值之一: 2 = 近似数据类型(FLOAT 和 SMALLFLOAT) 10 = 精确数字数据类型(DECIMAL、INTEGER、MONEY 和 SMALLINT) 对于所有其他数据类型为 NULL |
numeric_scale | INTEGER | 对于 DECIMAL 和 MONEY 数据类型为小数点右边的有效位数 对于 INTEGER 和 SMALLINT 类型为 0,对于所有其他数据类型为 NULL |
datetime_precision | INTEGER | 对于 DATE 和 DATETIME 列为秒的小数部分中的位数;其他情况为 NULL 此列是对 XPG4 的 GBase 8s 扩展。 |
is_nullable | VARCHAR(3) | 指示列是否允许为 NULL 值;为 YES 或 NO |
remarks | VARCHAR(254) | 保留供将来使用 |
sql_languages 信息模式视图
sql_languages 信息模式视图对符合当前数据库服务器支持的标准的每个实例包含一行。 sql_languages 视图包含以下列。
列 | 数据类型 | 解释 |
---|---|---|
source | VARCHAR(254) | 定义此 SQL 版本的组织 |
source_year | VARCHAR(254) | 批准源文档的年份 |
conformance | VARCHAR(254) | 服务器遵循的标准 |
integrity | VARCHAR(254) | 指示这是否为完整性增强功能部件;可为 YES 或 NO |
implementation | VARCHAR(254) | 标识供应商的 SQL 产品 |
binding_style | VARCHAR(254) | 直接、模块或其他绑定样式 |
programming_lang | VARCHAR(254) | 绑定样式适合的主语言 |
sql_languages 视图对于所有用户都完全可视。
server_info 信息模式视图
server_info 信息模式视图描述应用程序当前连接至的数据库服务器。它包含两列。
列 | 数据类型 | 解释 |
---|---|---|
server_attribute | VARCHAR(254) | 数据库服务器的属性 |
attribute_value | VARCHAR(254) | server_attribute 应用于当前数据库服务器时的值 |
此视图中的每一行都提供了有关一个属性的信息。符合 X/Open 的数据库必须提供具有关于数据库服务器的某些必需信息的应用程序。
server_info 视图包括以下 server_attribute 信息。
server_attribute | 解释 |
---|---|
identifier_length | 用户定义的标识符的最大字节数 |
row_length | 行中的最大字节数 |
userid_length | 用户名中的最大字节数 |
txn_isolation | 数据库服务器的初始事务隔离级别: 读取未落实(= 不带事务日志记录的数据库的缺省隔离级别;也称为脏读取) 读取已落实(= 不符合 ANSI 但支持显式事务日志记录的数据库的缺省隔离级别) 可序列化(= 符合 ANSI 标准的数据库的缺省隔离级别;也称为可重复读) |
collation_seq | 数据库服务器采用的字符集排序 有可能是以下值: ISO 8859-1 EBCDIC 缺省 GBase 8s 表示法显示 ISO 8859-1。 |
server_info 视图对于所有用户都完全可视。